SQL 服务器:对任何删除操作重置身份
SQL Server: reset identity on any delete action
举个简单的例子。有一个 table 名为 test:
现在我要删除一些数据而不重置身份日志:
当我插入新数据时,新的id将是7:
我希望在每次删除查询时自动调用 DBCC CHECKIDENT 函数来重置 table 测试中的标识。所以,当我插入 'Purple' 时,它的 ID 将是 4。有没有办法做到这一点?
您可以创建一个 DELETE TRIGGER
然后使用
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。
但这又不是你真正应该担心的事情
举个简单的例子。有一个 table 名为 test:
现在我要删除一些数据而不重置身份日志:
当我插入新数据时,新的id将是7:
我希望在每次删除查询时自动调用 DBCC CHECKIDENT 函数来重置 table 测试中的标识。所以,当我插入 'Purple' 时,它的 ID 将是 4。有没有办法做到这一点?
您可以创建一个 DELETE TRIGGER
然后使用
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。
但这又不是你真正应该担心的事情