Freigeben über


COLLATE (Transact-SQL)

Aktualisiert: 05. Dezember 2005

Eine Klausel, die auf eine Datenbankdefinition oder eine Spaltendefinition angewendet werden kann, um die Sortierung zu definieren, oder auf einen Zeichenfolgenausdruck, um eine Sortierungsumwandlung anzuwenden.

Themenlink (Symbol)Transact-SQL-Syntaxkonventionen

Syntax

COLLATE { <collation_name> | database_default }
<collation_name> :: = 
     { Windows_collation_name } | { SQL_collation_name }

Argumente

  • collation_name
    Der Name der Sortierung, die auf den Ausdruck, die Spaltendefinition oder die Datenbankdefinition angewendet wird. collation_name kann nur ein angegebener Windows_collation_name-Wert oder ein SQL_collation_name-Wert sein. collation_name muss ein Literalwert sein. collation_name kann nicht durch eine Variable oder einen Ausdruck dargestellt werden.

    Windows_collation_name ist der Name für eine Windows-Sortierung.

    SQL_collation_name ist der Name für eine SQL-Sortierung.

  • database_default
    Bewirkt, dass die COLLATE-Klausel die Sortierung der aktuellen Datenbank erbt.

Hinweise

Die COLLATE-Klausel kann auf mehreren Ebenen angegeben werden. Dabei handelt es sich um die folgenden Features:

  1. Erstellen oder Ändern einer Datenbank.
    Sie können die COLLATE-Klausel der CREATE DATABASE- oder ALTER DATABASE-Anweisung verwenden, um die Standardsortierung der Datenbank anzugeben. Sie können eine Sortierung auch dann angeben, wenn Sie eine Datenbank mithilfe von SQL Server Management Studio erstellen. Wenn Sie keine Sortierung angeben, wird der Datenbank die Standardsortierung der Instanz von SQL Server zugewiesen.
  2. Erstellen oder Ändern einer Tabellenspalte.
    Sie können mithilfe der COLLATE-Klausel der CREATE TABLE oder ALTER TABLE-Anweisung für jede Zeichenfolgenspalte eine Sortierung angeben. Sie können eine Sortierung auch dann angeben, wenn Sie eine Tabelle mithilfe von SQL Server Management Studio erstellen. Wenn Sie keine Sortierung angeben, wird der Spalte die Standardsortierung der Datenbank zugewiesen.
    Sie können außerdem die Option database_default in der COLLATE-Klausel verwenden, um anzugeben, dass für eine Spalte einer temporären Tabelle anstelle von tempdb die Standardsortierung der aktuellen Benutzerdatenbank für die Verbindung verwendet wird.
  3. Umwandeln der Sortierung eines Ausdrucks.
    Sie können die COLLATE-Klausel verwenden, um einen Zeichenausdruck nach einer bestimmte Sortierung umzuwandeln. Zeichenliteralen und Variablen wird die Standardsortierung der aktuellen Datenbank zugewiesen. Spaltenverweisen wird die Definitionssortierung der Spalte zugewiesen. Informationen zur Sortierung eines Ausdrucks finden Sie unter Rangfolge von Sortierungen (Transact-SQL).

Die Sortierung eines Bezeichners hängt von der Ebene ab, auf der er definiert ist. Bezeichnern von Objekten auf Instanzebene, wie z. B. Anmeldenamen und Datenbanknamen, wird die Standardsortierung der Instanz zugewiesen. Bezeichnern von Objekten innerhalb einer Datenbank, wie z. B. Tabellen, Sichten und Spaltennamen, wird die Standardsortierung der Datenbank zugewiesen. Beispielsweise können in einer Datenbank mit einer Sortierung mit Unterscheidung nach Groß-/Kleinschreibung zwei Tabellen mit gleichen Namen, die sich nur durch verschiedene Groß-/Kleinschreibung unterscheiden, erstellt werden; in einer Datenbank mit einer Sortierung ohne Unterscheidung nach Groß-/Kleinschreibung ist dies jedoch nicht möglich. Weitere Informationen finden Sie unter Bezeichner.

Variablen, GOTO-Marken, temporär gespeicherte Prozeduren und temporäre Tabellen können erstellt werden, wenn der Verbindungskontext einer Datenbank zugeordnet ist. Anschließend kann darauf verwiesen werden, wenn zum Kontext einer anderen Datenbank gewechselt wurde. Die Bezeichner von Variablen, GOTO-Marken, temporär gespeicherten Prozeduren und temporären Tabellen befinden sich in der Standardsortierung der Instanz.

Die COLLATE-Klausel kann nur für die Datentypen char, varchar, text, nchar, nvarchar und ntext verwendet werden.

Sortierungen werden normalerweise durch den Sortierungsnamen identifiziert. Eine Ausnahme ist das Setup-Programm, bei dem Sie keinen Namen für Windows-Sortierreihenfolgen, sondern den Kennzeichner der Sortierreihenfolge angeben, und dann Kontrollkästchen aktivieren, um die binäre Sortierung oder die Wörterbuchsortierung mit oder ohne Unterscheidung nach Groß- und Kleinschreibung und Akzenten anzugeben.

Sie können die fn_helpcollations-Systemfunktion ausführen, um eine Liste aller gültigen Namen für Windows-Sortierreihenfolgen und SQL-Sortiersnamen abzurufen:

SELECT *
FROM fn_helpcollations()

SQL Server unterstützt nur Codepages, die vom zugrunde liegenden Betriebssystem unterstützt werden. Wenn Sie eine Aktion ausführen, die von Sortierungen abhängt, muss die SQL Server-Sortierung, die von dem Objekt verwendet wird, auf das verwiesen wird, eine Codepage verwenden, die vom Betriebssystem des Computers unterstützt wird. Mögliche Aktionen sind:

  • Angeben einer Standardsortierung für eine Datenbank, wenn Sie die Datenbank erstellen oder ändern.
  • Angeben einer Sortierung für eine Spalte, wenn Sie eine Tabelle erstellen oder ändern.
  • Beim Wiederherstellen oder Anfügen einer Datenbank müssen die Standardsortierung der Datenbank und die Sortierungen aller Spalten und Parameter, die zur Datenbank gehören und den Datentyp char, varchar oder text aufweisen, vom Betriebssystem unterstützt werden.
    Codepageübersetzungen werden für die Datentypen char und varchar, nicht jedoch für den text-Datentyp unterstützt. Datenverlust während der Codepageübersetzung wird nicht gemeldet.

Wenn die angegebene Sortierung oder die Sortierung des Objekts, auf das verwiesen wird, eine Codepage verwendet, die nicht von Windows unterstützt wird, gibt SQL Server einen Fehler aus.

Siehe auch

Verweis

ALTER TABLE (Transact-SQL)
Rangfolge von Sortierungen (Transact-SQL)
Konstanten (Transact-SQL)
CREATE DATABASE (Transact-SQL)
CREATE TABLE (Transact-SQL)
DECLARE @local\_variable (Transact-SQL)
table (Transact-SQL)

Andere Ressourcen

Arbeiten mit Sortierungen
Arbeiten mit Unicode-Daten

Hilfe und Informationen

Informationsquellen für SQL Server 2005

Änderungsverlauf

Version Verlauf

05. Dezember 2005

Neuer Inhalt:
  • Dem collation_name-Argument wurde eine zusätzliche Beschreibung hinzugefügt: collation_name muss ein Literalwert sein. collation_name kann nicht durch eine Variable oder einen Ausdruck dargestellt werden.