我使用TRUNCATE函数从SQL Server 2014上的表中删除了所有记录,但现在此表上的新记录以PK 1开头。
有没有办法不重置主键,以便新记录从最后一个PK + 1开始?
答案 0 :(得分:0)
使用DELETE
似乎有效。
DECLARE @Tab TABLE (Id INT IDENTITY(1,1), Col VARCHAR)
DECLARE @Num INT = 10,
@Count INT = 0
WHILE @Count < @Num
BEGIN
INSERT @Tab
VALUES('')
SET @Count = @Count + 1
END
DELETE FROM @Tab
INSERT @Tab
VALUES ('')
SELECT *
FROM @Tab
答案 1 :(得分:0)
删除会有效。但有时删除所花费的时间可能是一个问题。如果必须截断,可以执行以下操作:
这是一个例子。
DECLARE @MaxID AS INT;
SELECT @MaxID = MAX(ID) + 1
FROM TableA;
TRUNCATE TABLE TableA;
DBCC CHECKIDENT ('dbo.TableA', RESEED, @MaxID);
现在,表中的新插入将从之前的标识值继续。
的Marius