我有一个带有主键的表,现在没有任何原因,我不知道何时插入数据,像这样加载
Pk_Col Some_Other_Col
1 A
2 B
3 C
1002 D
1003 E
1901 F
有什么办法可以像下面那样重置我的表,而又不删除/截断该表?
Pk_Col Some_Other_Col
1 A
2 B
3 C
4 D
5 E
6 F
最佳答案
您无法更新IDENTITY列,因此DELETE / INSERT是唯一的方法。您可以重新设置IDENTITY列并重新创建数据,如下所示:
DBCC CHECKIDENT ('dbo.tbl',RESEED,0);
INSERT INTO dbo.tbl (Some_Other_Col)
SELECT Some_Other_Col
FROM (DELETE FROM tbl OUTPUT deleted.*) d;
假定没有引用此数据的外键。
关于sql-server - 重置主键而不删除截断表,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23133151/