【发布时间】:2010-12-07 18:29:35
【问题描述】:
只是想知道超过 2147483647 条记录后实际会发生什么?
【问题讨论】:
-
将很容易测试 - 创建一个 IDENTITY 列,种子为 2147483646,然后添加两条记录! :-)
-
翻过来看负数系列。
标签: sql-server sql-server-2008 database-design
只是想知道超过 2147483647 条记录后实际会发生什么?
【问题讨论】:
标签: sql-server sql-server-2008 database-design
试试看
CREATE TABLE #tester (
testerid INT IDENTITY(1, 1) not null CONSTRAINT pk_tester
PRIMARY KEY CLUSTERED)
DBCC checkident(#tester, reseed, 2147483647)
INSERT #tester DEFAULT VALUES
INSERT #tester DEFAULT VALUES
消息 8115,第 16 级,状态 1,第 1 行
将 IDENTITY 转换为数据类型 int 时出现算术溢出错误。
另请参阅What To Do When Your Identity Column Maxes Out 以获得快速修复
【讨论】:
大多数人忘记了 int 有一个比正面大一个的负面。如果您认为您可能会超过正整数值,只需从 -2,147,483,648 范围的负端开始您的身份。或者要真正使用新的 DBA,从 2,147,483,647 开始,然后逐步增加 -1。
【讨论】:
如果您认为有可能,请使用范围更大的数据类型。例如 NUMERIC 或 BIGINT。
【讨论】: