Dipecahkan: identitas reset server

Pembaharuan Terakhir: 09/13/2023

Saat mengelola database, seseorang mungkin menghadapi skenario yang mengharuskan pengaturan ulang nilai identitas kenaikan otomatis; Microsoft SQL Server tidak terkecuali. Nilai identitas adalah angka yang dihasilkan sistem untuk identifikasi unik baris dalam tabel, terutama digunakan untuk tujuan kunci utama. Terkadang, selama siklus hidup database, catatan dihapus dan, dalam beberapa kasus, seluruh tabel dihapus, meninggalkan kesenjangan dalam nilai identitas. Ketika data baru masuk untuk menggantikan yang lama, mungkin diinginkan untuk mengatur ulang nilai identitas untuk mempertahankan urutan yang berurutan. Di SQL Server, ini dilakukan dengan menggunakan perintah DBCC CHECKIDENT.

DBCC CHECKIDENT ('your_table', RESEED, 0);

CHECKIDENT DBCC Dijelaskan

DBCC CHECKIDENT adalah perintah konsol database (DBCC) yang digunakan secara khusus untuk mengatur ulang nilai identitas. Parameter untuk perintah ini cukup mudah.

Setelah mengetik DBCC CHECKIDENT, masukkan nama tabel – ini adalah tabel yang ingin Anda atur ulang nilai identitasnya. Selanjutnya, gunakan kata kunci 'RESEED' untuk memberi tahu SQL Server bahwa Anda ingin mengatur ulang nilainya. Parameter terakhir adalah nomor yang ingin Anda masukkan kembali nilai identitasnya. Jika Anda ingin nilai identitas yang dimasukkan berikutnya menjadi 1, tetapkan nilai reseed ke 0. Nilai identitas otomatis berikutnya yang dihasilkan selalu satu lebih banyak daripada nilai reseed.

Untuk demonstrasi yang lebih jelas, Anda mempertimbangkan untuk memiliki tabel bernama 'Pesanan' dengan catatan yang masing-masing memiliki nilai identitas 1, 2, dan 3-

SELECT * FROM Orders;

1 | Order1 | 2019-11-01
2 | Order2 | 2019-11-03
3 | Order3 | 2019-11-05

Aplikasi CHECKIDENT DBCC Langkah demi Langkah

Pada dasarnya, mari kita asumsikan kita menghapus catatan ke-3 dan ingin pesanan berikutnya memiliki Id Pesanan 3. Kita akan menyemai ulang tabel Pesanan:

DBCC CHECKIDENT ('Orders', RESEED, 2);

Perintah itu akan menyebabkan record yang disisipkan berikutnya memiliki nilai identitas 3.

Memahami Kesenjangan Penyemaian Kembali

Fakta penting yang perlu diperhatikan adalah DBCC RESEED tidak mempengaruhi catatan yang ada. Misalnya, dalam situasi di mana catatan dihapus, penyemaian ulang dapat dilakukan untuk mengisi kekosongan. Namun, hal ini dapat menjadi kontroversial jika dilakukan ketika tabel tersebut masih memiliki catatan. Alasannya adalah jika nilai reseed yang ditentukan kurang dari nilai identitas maksimum saat ini dalam tabel, hal ini akan menyebabkan duplikasi nilai identitas saat memasukkan catatan baru, yang kontraproduktif.

Singkatnya, fungsi RESEED SQL Server adalah alat canggih yang membantu manajemen nilai identitas. Ini harus digunakan dengan hati-hati untuk menjaga integritas database dan juga memanfaatkan manfaatnya.

Fungsi Umum Terkait DBCC CHECKIDENT

Berikut adalah beberapa fungsi umum yang terkait dengan DBCC CHECKIDENT:

  • RUANG LINGKUP_IDENTITY(): Mengembalikan nilai identitas terakhir yang dimasukkan ke dalam kolom identitas dalam cakupan yang sama.
  • @@IDENTITAS: Ini adalah fungsi sistem yang mengembalikan nilai identitas yang terakhir dimasukkan.
  • IDENT_CURRENT(): Fungsi ini mengembalikan nilai identitas terakhir yang dihasilkan untuk tabel tertentu dalam sesi apa pun dan cakupan apa pun.

Menggunakan alat ini secara efektif dapat secara signifikan memudahkan upaya pengelolaan database Anda dan meningkatkan kinerja database SQL Server Anda. Penting untuk membiasakan diri kita dengan fungsi-fungsi ini karena fungsi-fungsi tersebut merupakan kebutuhan pokok dalam manajemen database SQL Server.

Pos terkait: