SQL Server:在任何删除操作上重置标识

时间:2016-07-21 13:43:14

标签: sql-server identity dbcc

我们举一个简单的例子。有一个名为 test 的表:

enter image description here

现在我要删除一些数据而不重置身份日志:

enter image description here

当我插入新数据时,新ID将为7:

enter image description here

我希望在每个删除查询中都自动调用DBCC CHECKIDENT函数来重置表测试的标识。所以,当我输入'紫色'时,它的ID就是4.有没有办法做到这一点?

1 个答案:

答案 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。

enter image description here

但是,这不是你应该真正担心的事情