Warum wird bei Latin1_General_CS_AS nicht zwischen Groß- und Kleinschreibung unterschieden?

8

Bei LIKE -Abfragen wird bei der Latin1_General_CS_AS -Kollation die Groß- und Kleinschreibung nicht berücksichtigt. Laut einer Fehlerbericht an Microsoft , dieser wurde als" Nach Entwurf "aufgeführt.

Bei der Sortierung Latin1_General_Bin wird jedoch ebenfalls zwischen Groß- und Kleinschreibung unterschieden. Sie funktioniert genau so wie für LIKE queries erwartet.

Sie können den Unterschied in dieser einfachen Abfrage sehen:

%Vor%

SQL Geige-Demo .

Meine Fragen sind:

  1. Warum würde dies als "By Design" in LIKE ?
  2. nicht als Groß- und Kleinschreibung angesehen werden?
  3. Wenn das wirklich besser ist, warum ist es ein anderes Verhalten zwischen den beiden Groß- und Kleinschreibung kollationierungen _Bin und _CS_AS ?

Ich wollte auf Latin1_General_CS_AS für alle zukünftigen Groß- und Kleinschreibung von Datenbanken standardisieren, aber das scheint ein subtiler Abfrage-Bug zu sein, der darauf wartet, zu passieren.

    
arserbin3 13.06.2014, 16:21
quelle

1 Antwort

11

Es ist kein regulärer Ausdruck. Der Bereich [a-z] bedeutet nur >='a' AND <='z' .

Unter dieser Sortierung, die alle Buchstaben außer Kapital Z enthält.

Unter SQL_Latin1_General_CP1_CS_AS Alle außer Kapital A fallen in diese Sortierreihenfolge.

Falls das immer noch nicht klar ist, überprüfen Sie die Sortierreihenfolge für Folgendes; für die drei verschiedenen Kollatierungen

%Vor%

Sie sehen, dass die binäre Sortierung alle Großbuchstaben zusammen enthält, die anderen beiden nicht.

%Vor%

Dies ist in BOL dokumentiert

  

Bei der Bereichssuche können die Zeichen im Bereich variieren   abhängig von den Sortierregeln der Sortierung.

    
Martin Smith 13.06.2014, 16:50
quelle

Tags und Links