admin

SQL Server中自动增量主键的上限

sql

SQL Server中自动增量主键的上限是多少?SQL Server自动增量主键达到上限时会发生什么?


阅读 166

收藏
2021-05-10

共1个答案

admin

Joel的答案是正确的,它是您使用的任何数据类型的上限。

这是其中两个的示例:

  • 整数:2 ^ 31-1(2,147,483,647)
  • bigint:2 ^ 63-1(9,223,372,036,854,775,807)

实际上,我所从事的工作已经达到极限。实际错误是:

    消息8115,第16级,状态1,第1行
    将IDENTITY转换为int数据类型的算术溢出错误。
    发生算术溢出。

我可以想到一些解决方法,可以解决这些问题。1号可能很困难,不太可能,2号很容易,但是可能会在您的代码库中引起问题。

  1. 如果身份列对您来说无关紧要(它不是外键等),那么您可以重新设置数据库的种子并重置身份列。
  2. 将您的身份列更改为更大的数字。因此,例如,如果您溢出了一个int,请将您的identity列更改为一个大int。祝你好运溢出:)

可能还有其他修复程序,但没有一个简单的魔术子弹。我只是希望这不会在一系列关系的中心表中发生,因为如果发生这种情况,那么您会很痛苦。这不是一个硬性解决方案,只是一个乏味而漫长的解决方案。

2021-05-10