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

Kolom identitas SQL Server 2000/2005 + replikasi

Ada opsi "TIDAK UNTUK REPLIKASI " yang dapat diterapkan ke kolom identitas (dan pemicu dan batasan lainnya).

Dalam contoh Anda, server1 akan menampilkan 1-10 tetapi hanya menerima 11-20 yang direplikasi.

Beberapa cara untuk menyetel benih Anda:

Baik:atur seed/increments Anda dengan NOT FOR REPLICATION seperti ini

  • Bibit 1, kenaikan 2
  • Bibit 2, kenaikan 2
  • Biji -1, kenaikan -2
  • Bibit -2, kenaikan -2
  • Bibit 1000000001, kenaikan 2
  • Bibit 1000000002, kenaikan 2
  • Biji -1000000002, kenaikan -2
  • Biji -1000000001, kenaikan -2

Ini memberi Anda 500.000.000 per server untuk 8 server

Atau:Tambahkan kolom kedua bernama ServerID untuk memberikan kunci komposit, gunakan NOT FOR REPLICATION untuk kolom ID

Ini meningkatkan hingga, katakanlah, 256 server untuk tinyint dengan 2^32 baris per server

Cara apa pun berhasil...




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bantuan pemecahan masalah SqlException:Timeout kedaluwarsa pada koneksi, dalam situasi tanpa beban

  2. Transactionscope melempar pengecualian platform ini tidak mendukung transaksi terdistribusi saat membuka objek koneksi

  3. Pyodbc:Kesalahan Batas Waktu Masuk

  4. Lihat apakah Tabel memiliki Batasan DEFAULT di SQL Server menggunakan OBJECTPROPERTY()

  5. Menggunakan ROLLBACK Transaksi di SQL Server