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

Setel ulang kunci utama (int sebagai identitas)

Nilai maksimum untuk sebuah bigint adalah 9.223.372.036.854.775.807 . Jika Anda mencapai 8 digit dalam sehari, Anda masih perlu 10 hari untuk mencapai maksimum. Itu seperti 25 juta tahun.

Dengan asumsi Anda masih ingin mengatur ulang kolom, pertanyaan pertama yang saya miliki adalah:apakah urutan baris itu penting? Artinya, apakah Anda mengandalkan fakta bahwa baris 1000 muncul sebelum 1100 untuk, katakanlah, urutan kronologis atau absolut? Jika tidak, mudah:hapus kolom dan tambahkan lagi. Hei presto, nilai-nilai baru.

Jika Anda perlu mempertahankan pesanan, Anda harus melakukannya sedikit lebih hati-hati:

  1. Kunci meja;
  2. Ubah jenisnya agar tidak lagi naik otomatis;
  3. Buat kolom baru. Sebaiknya Anda membuatnya tidak memiliki indeks untuk saat ini karena memperbarui indeks akan memperlambat penyisipan;
  4. Isi nilai di detik dengan semacam loop yang menambah penghitung (seperti trik rownum SQL Server) memesan sisipan agar sesuai dengan urutan aslinya;
  5. Ganti kolom lama dengan yang baru;
  6. Setel ulang peningkatan otomatis dan status kunci utama.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Temukan catatan sql yang berisi string serupa

  2. SELECT * INTO mempertahankan ORDER BY di SQL Server 2008 tetapi tidak 2012

  3. Periksa/Ubah Tingkat Kompatibilitas Database di SQL Server (SSMS)

  4. Bagaimana mengonversi hierarki bersarang dari xml ke tabel sql

  5. Siklus Melalui Clipboard Ring di SQL Server Management Studio (SSMS) - Tutorial SQL Server / TSQL Bagian 8