我得到了:
将表达式转换为数据类型int错误的Msg 8115算术溢出错误
对于此查询:
DECLARE @x int
IF EXISTS ( SELECT * FROM Y)
BEGIN
SET @x = (SELECT max(Id ) from Y)+1
END
ELSE
BEGIN
SET @x = 1
END 我试图将Id转换为Big,也尝试将x更改为Big,但仍然会出现相同的错误。
发布于 2016-09-14 09:38:10
我试过你的代码,没有任何问题,请参考这个链接,它可能对你有帮助。
发布于 2016-09-14 10:27:45
检查可以存储在类型中的值的范围:
https://msdn.microsoft.com/en-us/library/ms187746(v=SQL.90).aspx
https://msdn.microsoft.com/en-us/library/ms187745.aspx
(并检查以下内容:用于主键的Server或十进制(18,0))
在您的情况下,ID类型的decimal列可能会导致问题。
https://stackoverflow.com/questions/39486418
复制相似问题