Int 主键 - 超出 int 范围

发布于 2024-10-06 15:36:18 字数 38 浏览 2 评论 0原文

只是想知道超过 2147483647 条记录后实际会发生什么?

Just wondering what actually happens after you exceed 2147483647 records?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

月隐月明月朦胧 2024-10-13 15:36:18

尝试一下

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 数据类型时出现算术溢出错误。

另请参阅什么当您的身份列达到最大时要执行的操作以进行快速修复

try it out

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 

Msg 8115, Level 16, State 1, Line 1
Arithmetic overflow error converting IDENTITY to data type int.

See also What To Do When Your Identity Column Maxes Out for a quick fix

時窥 2024-10-13 15:36:18

大多数人忘记了 int 有一个负值,它比正值大。如果您认为您可能超出正 int 值,只需从范围 -2,147,483,648 的负端开始您的身份。或者真正与新的 DBA 一起玩,从 2,147,483,647 开始,步长为 -1。

Most people forget there is a negative side to int which is one bigger than the positive side. If you think you might outrun the positive int values just start your identity at the negative end of the range -2,147,483,648. Or to really play with new DBA start at 2,147,483,647 and step by -1.

假装不在乎 2024-10-13 15:36:18

如果您认为这很可能,那么请使用范围更大的数据类型。例如 NUMERIC 或 BIGINT。

If you think that is likely then use a datatype with a larger range. NUMERIC or BIGINT for example.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文