【发布时间】:2009-02-21 05:39:58
【问题描述】:
我有一个主键为 bigint 的表(身份属性是 Yes 并且从 1 到 1 开始)。此表正在生产中,并且每天都会更新:大量删除和插入。
问题是这个密钥现在变得太大了,只有 8 位数字。我担心有一天会溢出。
幸运的是,此键不用作任何其他表的外键。它仅用于标识表中的一行。因此,我可以安全地重新从 1 开始重新设置键值,也许一年一次。
我可以创建一个空白表并在那里复制其他字段数据,然后删除原始表中的所有行,重置键/表,最后将数据复制回来。
不确定 Microsoft SQL 2005 中是否有内置 sp_xxx 可以完成这项工作:只是从 1 开始按顺序重置主键而不影响其他列数据?或者其他任何简单的解决方案?
【问题讨论】:
标签: sql-server-2005 tsql