算术溢出错误

时间:2016-09-14 09:00:05

标签: sql-server

我得到了:

  

Msg 8115将表达式转换为数据类型int error

的算术溢出错误

对于此查询:

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 int,我也尝试将x更改为Big int,但仍然得到相同的错误。

2 个答案:

答案 0 :(得分:1)

我已经尝试过您的代码没有任何问题,请参阅此LINK它可能对您有帮助。

答案 1 :(得分:0)

检查可以存储在类型中的值的范围:

https://msdn.microsoft.com/en-us/library/ms187746(v=SQL.90).aspx

https://msdn.microsoft.com/en-us/library/ms187745.aspx

(还要检查:SQL Server BIGINT or DECIMAL(18,0) for primary key

RewriteRule ^vendor/?$ vendor.php [NC,L] RewriteRule ^vendor/([A-Za-z0-9-]+)/?$ vendor.php?vendor_title=$1 [NC,L] 类型的ID列可能会导致您的问题。