我正在尝试克服我删除行时出现的表格中的身份空白问题,其中SQL Server管理工作室不会增加表中存在的最后一个标识,而是最后创建的行标识,即使它是删除。
我不确定如何在触发器中执行此操作:
1-插入行时
2-获取表中存在的最后一个身份
3-通过1增加身份
4-在(3-)
中设置要插入的新行的标识
5-执行插入
答案 0 :(得分:-1)
您可以使用DBCC CHECKIDENT将身份重置为表格中的最大身份值
检查指定表的当前标识值 并且,如果需要,则更改标识值。您可以 还使用DBCC CHECKIDENT手动设置新的当前标识值 对于标识栏。
CREATE TABLE trgtest
(
id INT IDENTITY(1, 1),
NAME VARCHAR(30)
)
INSERT INTO trgtest
VALUES ('A'),('B'),('C'),('D')
SELECT * FROM trgtest
DELETE FROM trgtest
WHERE NAME = 'D'
DECLARE @max_id INT
SELECT @max_id = Max(id)
FROM trgtest
DBCC checkident(trgtest, reseed, @max_id) -- Reseting the Identity value to Max identity value in Table
INSERT INTO trgtest
VALUES ('D')
SELECT * FROM trgtest