Sortierungen für Indizes in SQL Server

8

Ich bin interessiert, ob es möglich ist, die Sortierung für eine Spalte anzugeben, wenn ein Index erstellt wird, der sich von der Sortierung dieser Spalte unterscheidet. Und wenn indiziert, sind String-Daten nach Kollatierung der Spalte oder Kollatierung der Datenbank sortiert?

    
Bogi 01.06.2011, 10:04
quelle

3 Antworten

5

Ich glaube nicht, dass Sie es können. Obwohl COLLATE separat dokumentiert ist, werden Sie feststellen, dass nur drei Orte aufgelistet sind, wo es möglich ist auftreten:

  • Erstellen oder Ändern einer Datenbank
  • Erstellen oder Ändern einer Tabellenspalte
  • Casting der Sortierung eines Ausdrucks

Beachten Sie, dass beispielsweise in CREATE TABLE :

%Vor%

dass die COLLATE-Klausel explizit erwähnt wird.

In CREATE INDEX :

%Vor%

Beachten Sie, dass hier nur eine Spalte zulässig ist - weder eine Spaltendefinition noch ein Ausdruck.

Ich glaube, die Sortierung jeder Spalte innerhalb eines Index folgt der Sortierung der zugrunde liegenden Spalte (n) in der entsprechenden Tabelle. Die Datenbank-Kollatierung wird, soweit mir bekannt ist, nicht viel verwendet, außer eine Standard-Kollatierung bei CREATE / ALTER-Tabellenanweisungen für Spalten bereitzustellen.

    
Damien_The_Unbeliever 01.06.2011, 10:32
quelle
6

Sie können das berechnete Feld mit der erforderlichen Sortierung erstellen und den Index für dieses Feld erstellen.

    
demas 01.06.2011 10:40
quelle
4

Erstellen Sie eine indizierte Sicht und fügen Sie die Kollatierung der Spalte in der SELECT-Anweisung hinzu.

    
ShadowDancerLV 13.07.2012 13:05
quelle

Tags und Links