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

自增长字段的疑问
请问

int     identity(1,1)这样的字段,有没有可能达到int的最大值啊?

-2^31   (-2,147,483,648)   to   2^31-1   (2,147,483,647)

如果达到最大值,再自增长会出现什么情况?

------解决方案--------------------
沒試過,如果數據多的話,定義為bigint 總夠用吧
------解决方案--------------------
identity 有极限的...但是不知道达到极限会发生什么. - -
------解决方案--------------------
没遇到过
如果数据量很大的话,用bigint吧
------解决方案--------------------
create table test1(id int identity(2147483647,1),s varchar(10))

insert into test1(s) values( 'a ') -正常

insert into test1(s) values( 'b ') --错误如下

服务器: 消息 8115,级别 16,状态 1,行 1
将 IDENTITY 转换为数据类型 int 时发生算术溢出错误。
发生算术溢出。

------解决方案--------------------
同意动物大哥... bigint 应该够用...
但是达到极限会发生什么呢? 是插不进数据?
还是会发生什么事? 等高人
------解决方案--------------------
zhenmeiyisi(。。。)
多谢 学习了
------解决方案--------------------
如果一直用下去,会不会爆掉?

-----------
你這總擔心是多佘的,如果你的數據真的到了自增都不夠用時,你不會做數據移轉嗎?不然的話
你的系統不是慢死了
------解决方案--------------------
这个问题肯定考虑,看你的数据量。
如果是静态表,只要够用,用tinyint又何妨。
如果是流水记录,用bigint,我敢说跑1千年都不会爆,用int基本上也可以了。