Welche Bedeutung hat der Sortiercode (leer, 90, 100, 110) in SQL Server 2012?

7

Während der Installation von SQL Server 2012 kann ich auf der Registerkarte Sortierung zwischen French_CI_AS und French_100_CI_AS wählen .

Was bedeuten sie und welches ist neuer? Wenn es keinen Code gibt, ist er neuer oder älter als die 100?

Alexandre Jobin
quelle

Antworten:

11

Die ohne Code ist eine Kollatierung der Version 90 (SQL Server 2005), die von früheren Versionen von Windows / SQL Server verwendet wird. Die Sortierung einschließlich 100 ist neuer (SQL Server 2008).

Es gibt einen kleinen Überblick über die Unterschiede in der SQL Server 2008-Dokumentation , der jedoch nicht sehr detailliert ist.

Wenn Sie eine neue Anwendung entwickeln, ist die Sortierung bei der Version 100 möglicherweise etwas logischer (insbesondere bei ungewöhnlichen Zeichen). Wenn jedoch andere SQL Server mit French_CI_AS ausgeführt werden, ist es möglicherweise besser, diese konsistent zu halten.

Nathan Jolly
quelle
Wir haben noch nichts entwickelt. Auf SQL Server 2012 ist alles frisch. Daher ist es für mich am besten, überall die neueste Konfiguration zu verwenden.
Alexandre Jobin
3
CI - Insensitive AS - Accent Sensitive
user1207758
1
Ich habe keine Quelle gefunden, aus der _110 Kollatierungen existieren. Es existieren nur _80-, _90- und _100-Familien (siehe z . B. msdn.microsoft.com/en-us/library/ms143726.aspx ).
@Cheese, Sie haben absolut Recht, wie in Ihrem Link erwähnt, waren die einzigen neuen Kollatierungen, die 2012 eingeführt wurden, ergänzende Kollatierungen (_SC), und es sieht nicht so aus, als gäbe es 2014 etwas Neues. Ich werde entsprechend aktualisieren.
Nathan Jolly
6

SQL Server muss die Kollatierungen versionieren. Da Kollatierungen die Sortierreihenfolge der in der Datenbank persistierten Daten bestimmen, muss garantiert werden, dass die Kollatierung zwischen den Releases stabil bleibt. Andernfalls würde eine Änderung der Sortierung (z. B. Behebung eines Fehlers in einer Sortierung) mit einer neuen Version von Windows dazu führen, dass zwei Zeilen in der Datenbank vor und nach der Version unterschiedlich sortiert werden. Dies mag trivial klingen, bedeutet jedoch, dass es sich um eine Indexbeschädigung handelt, da die Elemente als A> B (gemäß den neuen, festen Kollatierungsregeln) sortiert werden sollten, in der Datenbank jedoch als B> A (gemäß den alten) vorhanden sind , Buggy, Kollatierungsregeln). Daher muss SQL Server bei jeder Version einen Snapshot der Windows-Kollatierung erstellen und die Versionsnummer der Version in den Kollatierungsnamen einfügen (da die Namen kein explizites Versionsschema haben).

Die von Ihnen gewählte Sortierung unterliegt vielen Faktoren. Wenn Sie mit einem älteren Server interagieren, um Daten auszutauschen, verfügt dieser möglicherweise nicht über die neueste Sortierung, die Sie verwenden.

Remus Rusanu
quelle