Bagaimana cara query mereset identity column pada database SQL Server setelah menghapus data
Identity Column merupakan fitur pada SQL Server untuk membuat auto increment atau membuat auto number pada kolom tertentu secara otomatis. Ketika kita telah menghapus atau mengosongkan data pada sebuah tabel di database yang memiliki identity column menggunakan query delete maka kita harus mengembalikan nilai awal (reset) dari tipe data int yang menggunakan identity column, hal ini terjadi karena nilai dari column tersebut tidak otomatis di reset oleh SQL Server.
Selama pengembangan aplikasi biasanya kita sering memasukkan data dummy ke dalam database untuk tujuan pengujian. Tapi kemudian kita sampai pada titik dimana kita ingin semua record dari tabel dihapus dan juga ingin memulai nilai identity column dari 0. Untuk itu, kita harus menghapus data yang ada menggunakan perintah yang ada pada SQL Server. Perintah ini akan menghapus data dari tabel dan juga mengatur ulang nilai identity column.
Mereset identity column menggunakan perintah TRUNCATE
[truncate table nama_tabel]
Perintah truncate akan mengembalikan nilai awal indentity column pada saat tabel dicreate, nilai default dari identiy column pada saat create tabel adalah 0, tapi nilai tersebut bisa saja diubah. Misalkan kita mempunya tabel seperti dibawah ini:
[USE [nama_database] GO -- Create Table CREATE TABLE [dbo].[produk]( [ID] [int] IDENTITY(11,1) NOT NULL, [var] [nchar](10) NULL ) ON [PRIMARY] GO -- Input Data INSERT INTO [produk] VALUES ('Sirup') GO -- Hapus Data DELETE FROM [produk] GO]
Ketika kita menjalan perintah truncate setelah perintah diatas maka nilai dari identity columnnya akan di reset ke nilai 11 bukan 0, karena nilai awal identity columnya ketika membuat tabelnya adalah 11.
Mereset identity column menggunakan perintah RESEED
Berikut adalah query untuk mereset identity column pada database SQL Server[DBCC CHECKIDENT('nama_tabel', RESEED, 0)]
Pada perintah diatas anda bisa merubah angka 0 menjadi angka yang anda inginkan, jadi dengan menggunakan perintah reseed diatas kita bisa mereset indentity column dengan angka yang kita inginkan dan bukan direset seperti kondisi saat create tabel pada perintah truncate.
COMMENTS