sql >> Database >  >> RDS >> Sqlserver

SQL Server 2000/2005 identiteitskolom + replicatie

Er is de optie "NIET VOOR REPLICATIE " die kunnen worden toegepast op identiteitskolommen (en triggers en andere beperkingen).

In jouw voorbeeld zou server1 1-10 seeden, maar gewoon gerepliceerde 11-20 accepteren.

Een paar manieren om je zaden in te stellen:

Ofwel:stel je seed/increments in met NOT FOR REPLICATION zoals dit

  • Zaad 1, stap 2
  • Zaad 2, stap 2
  • Zaad -1, verhoging -2
  • Zaad -2, verhoging -2
  • Zaad 1000000001, stap 2
  • Zaad 1000000002, stap 2
  • Zaad -1000000002, verhoging -2
  • Zaad -1000000001, stapsgewijs -2

Dit geeft u 500.000.000 per server voor 8 servers

Of:Voeg een tweede kolom toe met de naam ServerID om samengestelde sleutels te geven, gebruik NOT FOR REPLICATION voor de ID-kolom

Dit schaalt op tot bijvoorbeeld 256 servers voor tinyint met 2^32 rijen per server

Hoe dan ook werkt...




  1. Een berekende kolom maken in SQL Server 2008

  2. Invoegen indien niet bestaat, anders id retourneren in postgresql

  3. Wat is over het algemeen sneller, bestanden doorzoeken of een SQL LIKE %x%-query uitvoeren via blobs?

  4. Python peewee save() werkt niet zoals verwacht