In der Dokumentation zu CREATE SEQUENCE
for T-SQL sehen Sie, dass der CREATE SEQUENCE
Befehl keinen ORDER
Parameter hat.
Zum Vergleich zeigen die Oracle-DokumenteCREATE SEQUENCE
die Optionen ORDER
/ an NOORDER
:
ORDER
Geben Sie
ORDER
an, um sicherzustellen , dass Sequenznummern in der Reihenfolge der Anforderung generiert werden. Diese Klausel ist nützlich, wenn Sie die Folgenummern als Zeitstempel verwenden. Die Garantie der Reihenfolge ist normalerweise nicht wichtig für Sequenzen, die zum Generieren von Primärschlüsseln verwendet werden.
ORDER
Dies ist nur erforderlich, um die geordnete Generierung zu gewährleisten, wenn Sie Oracle Database mit Real Application Clusters verwenden. Wenn Sie den exklusiven Modus verwenden, werden Sequenznummern immer in der richtigen Reihenfolge generiert.
NOORDER
Geben
NOORDER
Sie an, ob Sie nicht garantieren möchten, dass Sequenznummern in der Reihenfolge der Anforderung generiert werden. Dies ist die Standardeinstellung.
Bietet Microsoft SQL Server eine starke Bestellbeschränkung für SEQUENCE
s? Oder hält Microsoft es im Allgemeinen nicht für wichtig?
quelle
CREATE SEQUENCE
Anweisungen bin ich auf den Parameter ORDER gestoßen, und ich wollte nur sichergehen, dass dies kein Problem darstellt (ich bin mir nicht sicher, warum das überhauptORDER
hinzugefügt wurde, also dachte ich, ich könnte nur für den Fall fragen).Antworten:
In SQL Server werden alle Sequenznummern auf einer einzelnen Instanz generiert, sodass sie bereits inhärent geordnet sind. Und wenn Sie sie nur als eindeutige Zahlen verwenden, sollte das sowieso keine Rolle spielen.
Die Oracle-Implementierung ist unterschiedlich, da in einer RAC-Umgebung (nicht bei allen Oracle-Implementierungen) zwei Sequenznummern von zwei verschiedenen „Instanzen“ generiert werden können (dies ist der falsche Begriff für Oracle, aber nur die Äquivalenz in SQL Server). Normalerweise ist es Ihnen egal, ob die zuerst angeforderte langsamer ist und eine höhere Nummer als die später angeforderte hat - es sei denn, Sie verwenden die Sequenzen, wie in den Oracle-Dokumenten angegeben, als Zeitstempel, um die Reihenfolge der ursprünglichen Anforderung wirklich widerzuspiegeln.
quelle