2011-01-26 67 views
2

我现在没有工作,其具有多个删除标识列,因为它达到INT数据类型的最大极限, 我怎么能插入删除的地点记录而不截断所有的数据?标识列

回答

5

你不能“回收”未IDENTITY价值观 - 如果你已经达到了INT数据范围的结束,你需要你的ID栏更改为BIGINT

ALTER TABLE dbo.YourTable 
    ALTER COLUMN YourIDColumn BIGINT 

IDENTITY属性将被保留 - 现在你有很多可用于未来几个月/几年来额外的ID值的!

3

这似乎很多工作;为什么不把表中的主键(和任何相关表)从int更改为bigint

int会给你的2,147,483,647最大值。

一个bigint会给你一个9,223,372,036,854,775,807最大值。

4

打扰明显...

你是从1开始的,增加1吗?如果是这样,请将标识更改为-1,-1。它需要重建表格,但比改成bigint更容易。并给你另外20亿个ID。

然后规划BIGINT迁移...