DatenbankbezeichnerDatabase Identifiers

Der Name eines Datenbankobjekts wird Bezeichner genannt.The database object name is referred to as its identifier. Jedes Element in MicrosoftMicrosoft SQL ServerSQL Server kann einen Bezeichner besitzen.Everything in MicrosoftMicrosoft SQL ServerSQL Server can have an identifier. Hierzu gehören beispielsweise Server, Datenbanken und Datenbankobjekte wie Tabellen, Sichten, Spalten, Indizes, Trigger, Prozeduren, Einschränkungen und Regeln.Servers, databases, and database objects, such as tables, views, columns, indexes, triggers, procedures, constraints, and rules, can have identifiers. Bezeichner werden für die meisten Objekte benötigt, sind jedoch bei einigen Objekten, z. B. Einschränkungen, optional.Identifiers are required for most objects, but are optional for some objects such as constraints.

Der Bezeichner eines Objekts wird erstellt, wenn das Objekt definiert wird.An object identifier is created when the object is defined. Der Bezeichner wird anschließend verwendet, um auf das Objekt zu verweisen.The identifier is then used to reference the object. So erstellt beispielsweise die folgende Anweisung eine Tabelle mit dem Bezeichner TableXund zwei Spalten mit den Bezeichnern KeyCol und Description:For example, the following statement creates a table with the identifier TableX, and two columns with the identifiers KeyCol and Description:

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

Die Tabelle enthält außerdem eine unbenannte Einschränkung.This table also has an unnamed constraint. Die PRIMARY KEY -Einschränkung besitzt keinen Bezeichner.The PRIMARY KEY constraint has no identifier.

Die Sortierung eines Bezeichners hängt von der Ebene ab, auf der er definiert ist.The collation of an identifier depends on the level at which it is defined. Bezeichnern von Objekten auf Instanzebene, wie z. B. Anmeldenamen und Datenbanknamen, wird die Standardsortierung der Instanz zugewiesen.Identifiers of instance-level objects, such as logins and database names, are assigned the default collation of the instance. Bezeichnern von Objekten innerhalb einer Datenbank, z. B. Tabellen, Sichten und Spaltennamen, wird die Standardsortierung der Datenbank zugewiesen.Identifiers of objects in a database, such as tables, views, and column names, are assigned the default collation of the database. 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.For example, two tables with names that differ only in case can be created in a database that has case-sensitive collation, but cannot be created in a database that has case-insensitive collation.

Hinweis

Die Namen von Variablen oder die Parameter von Funktionen und gespeicherten Prozeduren müssen die Regeln für Transact-SQLTransact-SQL -Bezeichner einhalten.The names of variables, or the parameters of functions and stored procedures must comply with the rules for Transact-SQLTransact-SQL identifiers.

BezeichnerklassenClasses of Identifiers

Es gibt zwei Klassen von Bezeichnern:There are two classes of identifiers:

Reguläre BezeichnerRegular identifiers
Sie entsprechen den Regeln für das Format von Bezeichnern.Comply with the rules for the format of identifiers. Reguläre Bezeichner sind nicht begrenzt, wenn sie in Transact-SQLTransact-SQL -Anweisungen verwendet werden.Regular identifiers are not delimited when they are used in Transact-SQLTransact-SQL statements.

SELECT *  
FROM TableX  
WHERE KeyCol = 124  

BegrenzungsbezeichnerDelimited identifiers
Sie werden entweder in doppelte Anführungszeichen (") oder eckige Klammern ([ ]) eingeschlossen.Are enclosed in double quotation marks (") or brackets ([ ]). Bezeichner, die den Regeln für das Format von Bezeichnern entsprechen, können u. U. nicht begrenzt sein.Identifiers that comply with the rules for the format of identifiers might not be delimited. Beispiel:For example:

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-SQLTransact-SQL -Anweisung begrenzt werden.Identifiers that do not comply with all the rules for identifiers must be delimited in a Transact-SQLTransact-SQL statement. Beispiel:For example:

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 Begrenzungsezeichner müssen zwischen 1 und 128 Zeichen enthalten.Both regular and delimited identifiers must contain from 1 through 128 characters. Bei lokalen temporären Tabellen darf der Bezeichner maximal 116 Zeichen enthalten.For local temporary tables, the identifier can have a maximum of 116 characters.

Regeln für reguläre BezeichnerRules for Regular Identifiers

Die Namen von Variablen, Funktionen und gespeicherten Prozeduren müssen den folgenden Regeln für Transact-SQLTransact-SQL -Bezeichner entsprechen.The names of variables, functions, and stored procedures must comply with the following rules for Transact-SQLTransact-SQL identifiers.

  1. Das erste Zeichen muss eines der folgenden Zeichen sein:The first character must be one of the following:

    • Ein vom Unicode-Standard 3,2 definierter Buchstabe.A letter as defined by the Unicode Standard 3.2. Die Unicode-Definition von Buchstaben enthält die lateinischen Buchstaben von a bis z und von A bis Z sowie Buchstaben anderer Sprachen.The Unicode definition of letters includes Latin characters from a through z, from A through Z, and also letter characters from other languages.

    • Das Sonderzeichen Unterstrich (), At-Zeichen (@) oder Nummernzeichen (#).The underscore (), at sign (@), or number sign (#).

      Bestimmte Sonderzeichen am Anfang eines Bezeichners haben in SQL ServerSQL Servereine besondere Bedeutung.Certain symbols at the beginning of an identifier have special meaning in SQL ServerSQL Server. Ein mit dem At-Zeichen beginnender regulärer Bezeichner bezeichnet immer eine lokale Variable oder einen lokalen Parameter und kann nicht als Name eines Objekts eines anderen Typs verwendet werden.A regular identifier that starts with the at sign always denotes a local variable or parameter and cannot be used as the name of any other type of object. Ein mit dem Nummernzeichen (#) beginnender Bezeichner steht für eine temporäre Tabelle oder Prozedur.An identifier that starts with a number sign denotes a temporary table or procedure. Ein Bezeichner, der mit einem doppelten Nummernzeichen (##) beginnt, steht für ein globales temporäres Objekt.An identifier that starts with double number signs (##) denotes a global temporary object. Das Nummernzeichen und das doppelte Nummernzeichen können zwar auch am Anfang von Namen von Objekten anderer Typen stehen, diese Vorgehensweise wird jedoch nicht empfohlen.Although the number sign or double number sign characters can be used to begin the names of other types of objects, we do not recommend this practice.

      Einige Transact-SQLTransact-SQL -Funktionen haben Namen, die mit doppelten At-Zeichen beginnen (@@).Some Transact-SQLTransact-SQL functions have names that start with double at signs (@@). Um Verwechslungen zu vermeiden, sollten Sie keine Namen verwenden, die mit einem @@ beginnen.To avoid confusion with these functions, you should not use names that start with @@.

  2. Als nachfolgende Zeichen können folgende Zeichen verwendet werden:Subsequent characters can include the following:

    • Im Unicode-Standard 3,2 definierte Buchstaben.Letters as defined in the Unicode Standard 3.2.

    • Dezimalzahlen aus dem lateinischen Grundalphabet oder anderen nationalen Schriften.Decimal numbers from either Basic Latin or other national scripts.

    • Das At-Zeichen, Dollar-Zeichen ($), Nummernzeichen oder Unterstrich-Zeichen.The at sign, dollar sign ($), number sign, or underscore.

  3. Der Bezeichner darf kein reserviertes Transact-SQLTransact-SQL -Wort sein.The identifier must not be a Transact-SQLTransact-SQL reserved word. SQL ServerSQL Server reserviert sowohl die groß- also auch die kleingeschriebene Version reservierter Wörter. reserves both the uppercase and lowercase versions of reserved words. Beim Verwenden von Bezeichnern in Transact-SQLTransact-SQL -Anweisungen müssen alle Bezeichner, die diese Regeln nicht einhalten, durch doppelte Anführungszeichen oder eckige Klammern begrenzt werden.When identifiers are used in Transact-SQLTransact-SQL statements, the identifiers that do not comply with these rules must be delimited by double quotation marks or brackets. Welche Wörter reserviert werden, hängt vom Kompatibilitätsgrad der Datenbank ab.The words that are reserved depend on the database compatibility level. Der Grad kann mithilfe der ALTER DATABASE -Anweisung festgelegt werden.This level can be set by using the ALTER DATABASE statement.

  4. Eingebettete Leerzeichen oder Sonderzeichen sind nicht zulässig.Embedded spaces or special characters are not allowed.

  5. Ergänzende Zeichen sind nicht zulässig.Supplementary characters are not allowed.

    Beim Verwenden von Bezeichnern in Transact-SQLTransact-SQL -Anweisungen müssen alle Bezeichner, die diese Regeln nicht einhalten, durch doppelte Anführungszeichen oder eckige Klammern begrenzt werden.When identifiers are used in Transact-SQLTransact-SQL statements, the identifiers that do not comply with these rules must be delimited by double quotation marks or brackets.

Hinweis

Einige Regeln für das Format regulärer Bezeichner sind vom Kompatibilitätsgrad der Datenbank abhängig.Some rules for the format of regular identifiers depend on the database compatibility level. Dieser Grad kann mithilfe von ALTER DATABASEfestgelegt werden.This level can be set by using ALTER DATABASE.

Siehe auchSee Also

ALTER TABLE (Transact-SQL) ALTER TABLE (Transact-SQL)
CREATE DATABASE (SQL Server Transact-SQL) CREATE DATABASE (SQL Server Transact-SQL)
CREATE DEFAULT (Transact-SQL) CREATE DEFAULT (Transact-SQL)
CREATE PROCEDURE (Transact-SQL) CREATE PROCEDURE (Transact-SQL)
CREATE RULE (Transact-SQL) CREATE RULE (Transact-SQL)
CREATE TABLE (Transact-SQL) CREATE TABLE (Transact-SQL)
CREATE TRIGGER (Transact-SQL) CREATE TRIGGER (Transact-SQL)
CREATE VIEW (Transact-SQL) CREATE VIEW (Transact-SQL)
DECLARE @local_variable (Transact-SQL) DECLARE @local_variable (Transact-SQL)
DELETE (Transact-SQL) DELETE (Transact-SQL)
INSERT (Transact-SQL) INSERT (Transact-SQL)
Reserved Keywords (Transact-SQL) Reserved Keywords (Transact-SQL)
SELECT (Transact-SQL) SELECT (Transact-SQL)
UPDATE (Transact-SQL) UPDATE (Transact-SQL)