Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Nilai Duplikat di Kolom Identitas

Saya menguji apa yang dikatakan Giogri dan jika Anda mengaktifkan Spesifikasi Identitas (setidaknya pada 2008, mungkin versi lain juga) setelah tabel memiliki baris, DB akan memulai penomoran pada nilai integer tertinggi. Jika Anda memiliki satu baris dengan 100 sebagai nilai kolom, maka aktifkan Identity, penyisipan berikutnya adalah 101. Bahkan dengan Identity Seed ditetapkan sebagai 1. Bukan seperti yang saya harapkan, tetapi itulah yang terjadi.

Selain SET IDENTITY INSERT , ada juga perintah reseed. DBCC CHECKIDENT perintah yang akan mengatur ulang nilai identitas Anda kembali ke apa yang Anda tentukan.

Mengingat bahwa mengaktifkan Spesifikasi Identitas sebenarnya dimulai pada bilangan bulat tertinggi di kolom, seseorang mungkin menggunakan SET IDENTITY_INSERT atau melakukan DBCC CHECKIDENT .

Cara tercepat untuk mengurutkan ulang seperti yang dikatakan Andomar adalah dengan menjatuhkan/membuat ulang kolom seperti ini

ALTER TABLE tbl
DROP COLUMN ident_column
GO
alter TABLE tbl
ADD ident_column int IDENTITY

SET IDENTITY_INSERT dokumen:http://msdn.microsoft.com/ en-us/library/aa259221(SQL.80).aspx
DBCC CHECKIDENT dokumen:http://msdn.microsoft.com/ en-us/library/aa258817(SQL.80).aspx



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Akses filestream SQL Server 2008 ditolak

  2. Menggunakan gabungan di SQL Server untuk memperbarui tabel ketiga

  3. Hitung catatan untuk setiap bulan dalam setahun

  4. Tebalkan teks tertentu dalam SSRS

  5. Bagaimana cara mengubah data ke format json di SQL Server 2008?