我有一个带有主键的表,现在没有任何原因,我不知道何时插入数据,像这样加载

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/

10-13 06:48