Datenbankbezeichner

Der Name eines Datenbankobjekts wird Bezeichner genannt. Jedes Element in Microsoft SQL Server kann einen Bezeichner besitzen. Hierzu gehören beispielsweise Server, Datenbanken und Datenbankobjekte wie Tabellen, Sichten, Spalten, Indizes, Trigger, Prozeduren, Einschränkungen und Regeln. Bezeichner werden für die meisten Objekte benötigt, sind jedoch bei einigen Objekten, z. B. Einschränkungen, optional.

Der Bezeichner eines Objekts wird erstellt, wenn das Objekt definiert wird. Der Bezeichner wird anschließend verwendet, um auf das Objekt zu verweisen. So erstellt beispielsweise die folgende Anweisung eine Tabelle mit dem Bezeichner TableX und zwei Spalten mit den Bezeichnern KeyCol und Description:

CREATE TABLE TableX
(KeyCol INT PRIMARY KEY, Description nvarchar(80))

Die Tabelle enthält außerdem eine unbenannte Einschränkung. Die PRIMARY KEY-Einschränkung besitzt keinen Bezeichner.

Die Sortierung eines Bezeichners hängt von der Ebene ab, auf der er definiert ist. Bezeichnern von Objekten auf Instanzebene, z. B. Benutzernamen und Datenbanknamen, wird die Standardsortierung der Instanz zugewiesen. Bezeichnern von Objekten innerhalb einer Datenbank, z. B. Tabellen, Sichten und Spaltennamen, wird die Standardsortierung der Datenbank zugewiesen. Beispielsweise können in einer Datenbank mit einer nach Groß-/Kleinschreibung unterscheidenden Sortierung 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.

HinweisHinweis

Die Namen von Variablen, Funktionen und gespeicherten Prozeduren müssen den Regeln für Transact-SQL-Bezeichner entsprechen.

Bezeichnerklassen

Es gibt zwei Klassen von Bezeichnern:

  • Reguläre Bezeichner
    Sie entsprechen den Regeln für das Format von Bezeichnern. Reguläre Bezeichner sind nicht begrenzt, wenn sie in Transact-SQL-Anweisungen verwendet werden.

    SELECT *
    FROM TableX
    WHERE KeyCol = 124
    
  • Begrenzungsbezeichner
    Sie werden entweder in doppelte Anführungszeichen (") oder eckige Klammern ([ ]) eingeschlossen. Bezeichner, die den Regeln für das Format von Bezeichnern entsprechen, können u. U. nicht begrenzt sein. Beispiel:

    SELECT *
    FROM [TableX]         --Delimiter is optional.
    WHERE [KeyCol] = 124  --Delimiter is optional.
    

    Bezeichner, die nicht allen Regeln für Bezeichner entsprechen, müssen in einer Transact-SQL-Anweisung begrenzt werden. Beispiel:

    SELECT *
    FROM [My Table]      --Identifier contains a space and uses a reserved keyword.
    WHERE [order] = 10   --Identifier is a reserved keyword.
    

Sowohl reguläre als auch Begrenzungsbezeichner müssen zwischen 1 und 128 Zeichen enthalten. Bei lokalen temporären Tabellen darf der Bezeichner maximal 116 Zeichen enthalten.

Reservierte Wörter

Der Bezeichner darf kein reserviertes Transact-SQL-Wort sein. SQL Server reserviert sowohl die Groß- also auch die Kleinschreibung reservierter Wörter. Beim Verwenden von Bezeichnern in Transact-SQL-Anweisungen müssen alle Bezeichner, die diesen Regeln nicht entsprechen, durch doppelte Anführungszeichen oder eckige Klammern begrenzt werden. Welche Wörter reserviert werden, hängt vom Kompatibilitätsgrad der Datenbank ab. Diese Einstellung kann mithilfe der Anweisung ALTER DATABASE festgelegt werden.

Siehe auch

Verweis

ALTER TABLE (Transact-SQL)

CREATE DATABASE (Transact-SQL)

CREATE DEFAULT (Transact-SQL)

CREATE PROCEDURE (Transact-SQL)

CREATE RULE (Transact-SQL)

CREATE TABLE (Transact-SQL)

CREATE TRIGGER (Transact-SQL)

CREATE VIEW (Transact-SQL)

DECLARE @local\_variable (Transact-SQL)

DELETE (Transact-SQL)

INSERT (Transact-SQL)

Reservierte Schlüsselwörter (Transact-SQL)

SELECT (Transact-SQL)

UPDATE (Transact-SQL)