-1

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

在此处输入图像描述

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

在此处输入图像描述

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

在此处输入图像描述

我希望在每个删除查询中自动调用 DBCC CHECKIDENT 函数来重置表测试中的标识。所以,当我插入“Purple”时,它的 id 是 4。有没有办法做到这一点?

4

1 回答 1

0

您可以创建一个DELETE TRIGGER然后使用

SQL 小提琴演示

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。

在此处输入图像描述

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

于 2016-07-21T13:49:14.637 回答