日期:2014-05-18  浏览次数:20580 次

sqlserver 自增列ID最大值是多少?如果达到最大值,系统将如何处理?
sqlserver 自增列ID最大值是多少?如果达到最大值,系统将如何处理?

ID 是主键
[id] [int] IDENTITY (1, 1) NOT NULL 

如果表中数据逐渐增多,id会不会达到最大值?

------解决方案--------------------
这个还真不知道。貌似是int类型的最大值??
------解决方案--------------------
这个跟你选择的数据类型有关

数据类型 范围 存储
SQL code
bigint 
 -2^63 (-9,223,372,036,854,775,808) 到 2^63-1 (9,223,372,036,854,775,807)
 8 字节
 
int 
 -2^31 (-2,147,483,648) 到 2^31-1 (2,147,483,647)
 4 字节
 
smallint 
 -2^15 (-32,768) 到 2^15-1 (32,767)
 2 字节
 
tinyint 
 0 到 255

------解决方案--------------------
int类型的最大值为2,147,483,648
二十多亿调数据才能达到最大
设想楼主是不是想多了
------解决方案--------------------
那就int64,哦bigint
------解决方案--------------------
那就用最大的int类型。另外我觉得如果那么多记录放一个数据表,SQL SERVER的效率会低的可怕,再怎么优化也没戏。
------解决方案--------------------
探讨

引用:

int类型的最大值为2,147,483,648
二十多亿调数据才能达到最大
设想楼主是不是想多了


我搞人口普查系统,一个人一条记录,就达到13多亿了,还不算黑户

------解决方案--------------------
探讨
引用:

引用:

int类型的最大值为2,147,483,648
二十多亿调数据才能达到最大
设想楼主是不是想多了


我搞人口普查系统,一个人一条记录,就达到13多亿了,还不算黑户

那你用bigint

全球前五百年,后五百年的都用不完。

------解决方案--------------------

钻牛角尖了吧,有必要非得在一张表存储所有的数据吗?

查询的效率太低了吧,这么设计的话DBA可以回家了


------解决方案--------------------
同样性质的记录,当然应该在同一个表
否则,sql语句会麻烦很多

记录太多,分区表来解决性能问题,同时对于sql语句是没有任何影响
------解决方案--------------------
消息 8115,级别 16,状态 1,第 1 行
将 IDENTITY 转换为数据类型 int 时出现算术溢出错误。
发生算术溢出。

报这个错,插入失败。
------解决方案--------------------
十几楼了没一个正面回答问题的