任何人都可以解释查询在放置在视图中后的功能不同吗?更具体地说,我已经注意到,当我运行视图时,我经常会遇到数据类型转换错误,但是当我在视图内部运行隔离查询时不会。例如:SQL - 运行视图时出错,但在视图内运行查询时出错
select
cast(id as int(11)) as 'UserID',
name,
dob
from myTable
该查询运行得很好。然而,当我保存这个查询作为视图:
create view myView as (
select
cast(id as int(11)) as 'UserID',
name,
dob
from myTable
)
,然后尝试和select * from myView
运行来看,很多时候,我会得到转换错误,如“算术溢出的数据类型为varchar转换为数字”。有人可以解释当查询存储为导致此错误的视图时,对查询所做的更改吗?
这取决于你的数据,可能你的数据有空间,点或其他东西,不能转换为int。 –
什么版本的SQL Server确实允许int(11)的数据类型? 也许你使用MySQL。 – msi77