The DBCC CHECKIDENT
perintah manajemen digunakan untuk me-reset counter identitas. Sintaks perintahnya adalah:
DBCC CHECKIDENT (table_name [, { NORESEED | { RESEED [, new_reseed_value ]}}])
[ WITH NO_INFOMSGS ]
Contoh:
DBCC CHECKIDENT ('[TestTable]', RESEED, 0);
GO
Itu tidak didukung di versi sebelumnya dari Azure SQL Database, tetapi didukung sekarang.
Harap dicatat bahwa new_reseed_value
argumen bervariasi di seluruh versi SQL Server sesuai dengan dokumentasi :
Jika baris ada dalam tabel, baris berikutnya dimasukkan dengan nilai new_reseed_value . Dalam versi SQL Server 2008 R2 dan sebelumnya, baris berikutnya yang disisipkan menggunakan new_reseed_value + nilai kenaikan saat ini.
Namun, saya menemukan informasi ini menyesatkan (hanya salah sebenarnya) karena perilaku yang diamati menunjukkan bahwa setidaknya SQL Server 2012 masih menggunakan new_reseed_value + logika nilai kenaikan saat ini. Microsoft bahkan bertentangan dengan yang Example C
ditemukan di halaman yang sama:
C. Memaksa nilai identitas saat ini ke nilai baru
Contoh berikut memaksa nilai identitas saat ini di kolom AddressTypeID di tabel AddressType ke nilai 10. Karena tabel memiliki baris yang sudah ada, baris berikutnya yang dimasukkan akan menggunakan 11 sebagai nilai, yaitu, nilai kenaikan saat ini yang baru ditetapkan untuk nilai kolom plus 1.
USE AdventureWorks2012;
GO
DBCC CHECKIDENT ('Person.AddressType', RESEED, 10);
GO
Namun, ini semua meninggalkan opsi untuk perilaku yang berbeda pada versi SQL Server yang lebih baru. Saya kira satu-satunya cara untuk memastikan, sampai Microsoft menjernihkan hal-hal dalam dokumentasinya sendiri, adalah dengan melakukan tes yang sebenarnya sebelum digunakan.