Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

SQL Server 2000/2005 Identitätsspalte + Replikation

Es gibt die Option "NOT FOR REPLICATION ", die auf Identitätsspalten (und Trigger und andere Einschränkungen) angewendet werden kann.

In Ihrem Beispiel würde server1 1-10 initialisieren, aber einfach replizierte 11-20 akzeptieren.

Ein paar Möglichkeiten, um Ihre Samen zu setzen:

Entweder:setze deinen Seed/Increments mit NOT FOR REPLICATION so

  • Startwert 1, Inkrement 2
  • Seed 2, Inkrement 2
  • Startwert -1, Inkrement -2
  • Startwert -2, Inkrement -2
  • Seed 1000000001, Inkrement 2
  • Seed 1000000002, Inkrement 2
  • Startwert -1000000002, Inkrement -2
  • Startwert -1000000001, Inkrement -2

Das ergibt 500.000.000 pro Server für 8 Server

Oder:Fügen Sie eine zweite Spalte namens ServerID hinzu, um zusammengesetzte Schlüssel zu erhalten, verwenden Sie NOT FOR REPLICATION für die ID-Spalte

Dies skaliert bis zu, sagen wir, 256 Server für tinyint mit 2^32 Zeilen pro Server

So oder so funktioniert...