我的视图设置为
CREATE VIEW dbo.my_data_view
AS
SELECT * from dbo.my_used_data (NOLOCK)
UNION
SELECT * from dbo.my_unused_data (NOLOCK)
go
我目前在my_unused_data
表格中没有任何内容。但我希望任何查询都可以正常工作。以下是我的问题:
select * from my_data_view where code = '5E7230893312001084789839'
查询失败并显示消息:
Msg 245, Level 16, State 1, Line 1
Conversion failed when converting the varchar value '8E2230893319020101078983' to data type int.
这没有任何意义。 my_used_data
和my_unused_data
表具有相同的架构和类型,因此没有什么可以出错。我发现的是,当我在my_unused_data
中有数据时。它工作正常;否则失败。这些观点是什么特别之处还是什么?
答案 0 :(得分:0)
问题解决了,交换列的列的顺序为no。 my_unused_data
的3和4使事情搞砸了。我没有意识到SQL服务器在处理SELECT * UNION SELECT *查询时假定列的排序是正确的