目前在某些操作中,我必须删除旧数据并插入新数据。但我注意到,尽管删除了数据,但标识列并未重置并从其最后一个最大值继续。因此,我使用 DBCC CheckIdent 来实现在交易中发生的所有这些相同的事情。我可以将事务回滚到初始状态吗? DBCC CHECKIDENT 会不会造成任何问题?请指导...
最佳答案
下面的测试代码表明可以回滚 DBCC 操作:
create table #t
(id int identity, val1 int)
go
insert #t (val1)
values (1),(2),(3)
select MAX(id) AS before from #t
begin tran
delete #t
dbcc checkident (#t, reseed,0)
select MAX(id) AS inside_tran from #t
rollback
select MAX(id) as after_rollback from #t
dbcc checkident (#t, noreseed)
关于sql - 使用 DBCC CHECKIDENT 重新启动 Identity 列计数后,是否可以回滚到原始状态?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3861642/