如何在现有数据上重新设置/替换标识列

时间:2012-01-08 06:40:52

标签: sql sql-server sql-server-2008 tsql

嘿所有我想从1开始重新设置我的IDENTITY COLUMN值我知道如何用DBCC CHECKIDENT做这个,但是,我想替换所有现有行中的值..这个表有200多万行

这项任务的最佳方法是什么?

2 个答案:

答案 0 :(得分:6)

您只需添加新的标识列即la How to add a new identity column to a table in SQL Server?即可。只需删除旧列并重新添加即可。当然,这会破坏任何外键,但我认为,因为你正在重新编号,我猜这一切都没问题。

答案 1 :(得分:2)

请参阅此示例如何替换值,但RESEED是其他内容:

CREATE TABLE t (id INT IDENTITY)
GO
INSERT t DEFAULT VALUES
GO 25

SET IDENTITY_INSERT t ON

delete t 

OUTPUT DELETED.Id+100 INTO T(Id)

SET IDENTITY_INSERT t Off

SELECT * FROM t

DROP TABLE t

重新种植

的示例
DBCC CHECKIDENT('YourTableName', 150, reseed)

如果你必须更换值 - 用2M行,它肯定需要时间