请问MSSQL2005自增长字段的最大值是多少?
比如初值是1,种子也是1.
在不断对数据表进行插入和删除记录时,自增长字段的值一直在增大,会不会超过int类型的上限?
若超过了上限,程序上该怎么处理?
------解决方案--------------------
- SQL code
CREATE TABLE #t( [myid] [int] IDENTITY(2147483645,1) NOT NULL, [mydt] [datetime] NOT NULL DEFAULT (getdate()), [myno] [int] NULL)insert into #t (myno) values(1)insert into #t (myno) values(2)insert into #t (myno) values(3)select * from #tmyid mydt myno--------------------------------------------2147483645 2008-10-26 10:09:58.077 12147483646 2008-10-26 10:09:58.077 22147483647 2008-10-26 10:09:58.077 3insert into #t (myno) values(4)消息 8115,级别 16,状态 1,第 1 行将 IDENTITY 转换为数据类型 int 时出现算术溢出错误。发生算术溢出。
------解决方案--------------------
和你定义的字段类型上限一样
bigint 从 –2^63 (–9,223,372,036,854,775,808) 到 2^63–1 (9,223,372,036,854,775,807)
整数数据,从 –2^63 (–9,223,372,036,854,775,808) 到 2^63–1 (9,223,372,036,854,775,807)。存储大小为 8 字节。
integer –2^31 (-2,147,483,648) 到 2^31–1 (2,147,483,647)
整数数据,从 –2^31 (-2,147,483,648) 到 2^31–1 (2,147,483,647)。存储大小为 4 字节。
smallint –32,768 到 32,767
整数数据,从 –32,768 到 32,767。存储大小为 2 字节。
tinyint 从 0 到 255
整数数据,从 0 到 255。存储大小为 1 字节。