将 IDENTITY 转换为数据类型 int 时出现算术溢出错误

San*_*ade 6 t-sql sql-server

通过 vb 代码运行时,将 IDENTITY 转换为数据类型 int 时发生算术溢出错误。但是当我执行存储过程时,数据会正确插入。

通过应用程序有时这有效,有时则无效。

当我检查当前标识值和当前列值不同时。这是有问题的吗?

请让我知道如何解决它。

小智 7

请不要使用

DBCC CHECKIDENT('dbo.TableName',reseed,0)
//or 
DBCC CHECKIDENT('dbo.TableName')
Run Code Online (Sandbox Code Playgroud)

像我一样解决这个问题。这将导致数据库重新设置您的身份。

请使用这个

DBCC CHECKIDENT('dbo.TableName',NORESEED)
Run Code Online (Sandbox Code Playgroud)

它将显示您的表是否处于 int 值的最大值。int 的最大值为2,147,483,647.


scs*_*mon 4

2147483647是最大尺寸,INT所以您的某个地方IDENTITY比这个大。您可以使用BIGINT相反 来解决您的错误,假设您IDENTITY不会超过9223372036854775807.