当通过vb代码运行时,发生将IDENTITY转换为数据类型int的算术溢出错误。但是当我执行存储过程时,数据被正确插入。将IDENTITY转换为数据类型的算术溢出错误int
通过应用程序有时也有效,有时它不会。
当我检查当前标识值和当前列值是不同的。这是否属于问题。
请让我知道如何解决它。
当通过vb代码运行时,发生将IDENTITY转换为数据类型int的算术溢出错误。但是当我执行存储过程时,数据被正确插入。将IDENTITY转换为数据类型的算术溢出错误int
通过应用程序有时也有效,有时它不会。
当我检查当前标识值和当前列值是不同的。这是否属于问题。
请让我知道如何解决它。
2147483647
是INT
的最大尺寸,因此您的IDENTITY
大于此值。如果您的IDENTITY
不会超过9223372036854775807
,您可以使用BIGINT
来解决您的错误。
它没有穿过最大INT值。数据来自MQ ..我经过一段时间的数据处理后停止了MQ连接。在它达到0.我再次连接它显示相同的错误。我注意到当前列值和当前身份值是不同的,有些时候这两个变得相同。我假设当两者都相同时流程正在发生。 –
你正在使用哪个版本的VB?你使用变量类型'long'来返回返回值吗?在VB 6和int之前,值是非常有限的,在.net中它仍然被限制为只包含大约10位数字。
我会确保你使用的是“长”在VB
像其他人说,你的列是更大比类型的range allowed大。
您可以像其他人所说的那样使用DBCC CHECKIDENT('dbo.TableName',reseed,0)
来种子,但如果您尝试to reuse a value that has already been used,则可能导致错误。
假设该列是一个自动增量标识列,并且行计数低于数据类型范围,则可以重新插入所有值。
这将取决于在你的限制之下,可能比它值得的更困难。
请粘贴确切的错误消息和一些示例表架构 – TheGameiswar
那么是IDENTITY和int?检查表格定义。显示你的VB代码。 – Paparazzi