调试别人的存储过程,然后报错了
将 varchar 值 'ACCE5057EC423F7C' 转换成数据类型 int 时失败
这让我一通找。找了一个多小时。
通过这个错可以知道,错误肯定是在联表 字段、UNION 之间。如果有其他情况会补充。
UNION All 两个表。如果表字段类型不同,sql默认会强转。
例子来了~~~~
博客园这个渣,不能插入代码了。 图片居然也不能搞了~
pasting
SELECT * FROM [dbo].[t_U1]
SELECT * FROM [dbo].[t_U1]
1
a
ACCE5057EC423F7C
2 b ACCE5057EC423F7C
SELECT * FROM [dbo].[t_U2]
99
z
98 x
SELECT * FROM [dbo].[t_U1]
UNION ALL
SELECT *,
0 FROM [dbo].[t_U2]
1表是nvarchar类型。
UNION ALL对应的是0 然后sql就会把 1表的3字段进行int转。然后就报错了。