我们举一个简单的例子。有一个名为 test 的表:
现在我要删除一些数据而不重置身份日志:
当我插入新数据时,新ID将为7:
我希望在每个删除查询中都自动调用DBCC CHECKIDENT函数来重置表测试的标识。所以,当我输入'紫色'时,它的ID就是4.有没有办法做到这一点?
答案 0 :(得分:0)
您可以创建DELETE TRIGGER
,然后使用
<强> SQL Fiddle Demo 强>
CREATE TRIGGER sampleTrigger
ON dbo.test
FOR DELETE
AS
DECLARE @maxID int;
SELECT @maxID = MAX(id)
FROM test;
DBCC CHECKIDENT (test, RESEED, @maxID);
GO
所以下一个插入将使用4。
但是,这不是你应该真正担心的事情