Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Können wir zum ursprünglichen Zustand zurückkehren, nachdem wir DBCC CHECKIDENT verwendet haben, um die Anzahl der Identitätsspalten neu zu starten?

Der folgende Testcode zeigt, dass die DBCC-Aktion rückgängig gemacht werden kann:

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)