Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Gilt für:SQL Server
Azure SQL-Datenbank
Verwaltete Azure SQL-Instanz
Azure Synapse Analytics
Analytics Platform System (PDW)
SQL-Analyseendpunkt in Microsoft Fabric
Lagerhaus in Microsoft Fabric
SQL-Datenbank in Microsoft Fabric
Der Name eines Datenbankobjekts wird Bezeichner genannt.
Server, Datenbanken und Datenbankobjekte wie Tabellen, Sichten, Spalten, Indizes, Trigger, Prozeduren, Einschränkungen und Regeln können Bezeichner haben. Die meisten Objekte erfordern Bezeichner, aber einige Objekte, z. B. Einschränkungen, machen sie optional.
Sie erstellen einen Objektbezeichner, wenn Sie das Objekt definieren. Verwenden Sie den Bezeichner, um auf das Objekt zu verweisen. So erstellt beispielsweise die folgende Anweisung eine Tabelle mit dem Bezeichner TableXund 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 Primärschlüsseleinschränkung hat keinen Bezeichner und würde daher einem vom System generierten Namen wie PK__TableX__D7CB9CCCEEF0806C zugewiesen werden, den Sie in Systemmetadatenansichten wie sys.key_constraints beobachten könnten.
Einschränkungsnamen und andere Schemabereichsobjekte müssen innerhalb eines Datenbankschemas eindeutig sein. Beispielsweise können zwei Primärschlüsseleinschränkungen keinen Namen teilen. Spaltennamen müssen jedoch nur innerhalb jeder Tabelle und nicht innerhalb des Schemas eindeutig sein.
Die Sortierung eines Bezeichners hängt von der Ebene ab, auf der Sie ihn definieren.
- Die Standardsortierung der Instanz wird Bezeichnern von Objekten auf Instanzebene zugewiesen, z. B. Anmeldungen und Datenbanknamen.
- Die Standardsortierung der Datenbank wird Bezeichnern von Objekten in einer Datenbank zugewiesen, z. B. Tabellen, Ansichten und Spaltennamen. Sie können beispielsweise zwei Tabellen mit Namen erstellen, die sich nur durch Groß-/Kleinschreibung unterscheiden, in einer Datenbank mit einer sortierungsabhängigen Groß-/Kleinschreibung. Sie können dies jedoch nicht in einer Datenbank mit einer sortierungsunabhängigen Groß-/Kleinschreibung tun.
Note
Die Namen von Variablen oder die Parameter von Funktionen und gespeicherten Prozeduren müssen den Regeln für Transact-SQL-Bezeichner entsprechen.
Bezeichnerklassen
Es gibt zwei Klassen von Bezeichnern:
Reguläre Bezeichner entsprechen den Regeln für das Format von Bezeichnern. Reguläre Bezeichner sind nicht begrenzt, wenn sie in Transact-SQL-Anweisungen verwendet werden.
USE AdventureWorks2022; GO SELECT * FROM HumanResources.Employee WHERE NationalIDNumber = 153479919;Begrenzungsbezeichner werden entweder in doppelte Anführungszeichen (
") oder eckige Klammern ([und]) eingeschlossen. Bezeichner, die den Regeln für das Format von Bezeichnern entsprechen, können u. U. nicht begrenzt sein. Beispiel:USE AdventureWorks2022; GO SELECT * FROM [HumanResources].[Employee] --Delimiter is optional. WHERE [NationalIDNumber] = 153479919 --Delimiter is optional.
Bezeichner, die nicht allen Regeln für Bezeichner entsprechen, müssen in einer Transact-SQL-Anweisung begrenzt werden. Beispiel:
USE AdventureWorks2022;
GO
--Identifier contains a space and uses a reserved keyword.
CREATE TABLE [SalesOrderDetail Table] (
[Order] INT NOT NULL,
[SalesOrderDetailID] INT IDENTITY(1, 1) NOT NULL,
[OrderQty] SMALLINT NOT NULL,
[ProductID] INT NOT NULL,
[UnitPrice] MONEY NOT NULL,
[UnitPriceDiscount] MONEY NOT NULL,
[ModifiedDate] DATETIME NOT NULL,
CONSTRAINT [PK_SalesOrderDetail_Order_SalesOrderDetailID] PRIMARY KEY CLUSTERED (
[Order] ASC,
[SalesOrderDetailID] ASC
)
);
GO
SELECT *
FROM [SalesOrderDetail Table] --Identifier contains a space and uses a reserved keyword.
WHERE [Order] = 10; --Identifier is a reserved keyword.
Reguläre und begrenzte Bezeichner müssen aus 1 bis 128 Zeichen bestehen. Bei lokalen temporären Tabellen darf der Bezeichner maximal 116 Zeichen enthalten.
Regeln für reguläre Bezeichner
Die Namen von Variablen, Funktionen und gespeicherten Prozeduren müssen diesen Regeln für Transact-SQL Bezeichner entsprechen.
Das erste Zeichen muss eines der folgenden Zeichen sein:
Ein vom Unicode-Standard 3,2 definierter Buchstabe. Die Unicode-Definition von Buchstaben enthält die lateinischen Buchstaben von
abiszund vonAbisZsowie Buchstaben anderer Sprachen.Das Sonderzeichen Unterstrich (
_), At-Zeichen (@) oder Nummernzeichen (#).Bestimmte Sonderzeichen am Anfang eines Bezeichners haben in SQL Servereine besondere Bedeutung. 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. Ein mit dem Nummernzeichen (#) beginnender Bezeichner steht für eine temporäre Tabelle oder Prozedur. Ein Bezeichner, der mit einem doppelten Nummernzeichen (
##) beginnt, steht für ein globales temporäres Objekt. 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.Einige Transact-SQL-Funktionen haben Namen, die mit doppelten At-Zeichen beginnen (
@@). Um Verwirrung mit diesen Funktionen zu vermeiden, verwenden Sie keine Namen, die mit@@beginnen.
Als nachfolgende Zeichen kann die folgende Liste verwendet werden:
Im Unicode-Standard 3,2 definierte Buchstaben.
Dezimalzahlen aus dem lateinischen Grundalphabet oder anderen nationalen Schriften.
At-Zeichen (
@), Dollar-Zeichen ($), Nummernzeichen (#) oder ein Unterstrich (_).
Der Bezeichner darf kein reserviertes Transact-SQL-Wort sein. SQL Server reserviert sowohl die groß- also auch die kleingeschriebene Version reservierter Wörter. Wenn Sie Bezeichner in Transact-SQL-Anweisungen verwenden, trennen Sie Bezeichner, die diese Regeln nicht einhalten, indem Sie doppelte Anführungszeichen oder Klammern verwenden. Welche Wörter reserviert werden, hängt vom Kompatibilitätsgrad der Datenbank ab. Legen Sie die Kompatibilitätsstufe der Datenbank mithilfe der ALTER DATABASE Compatibility Level-Anweisung fest.
Verwenden Sie keine eingebetteten Leerzeichen oder Sonderzeichen.
Verwenden Sie keine Zusatzzeichen.
Wenn Sie Bezeichner in Transact-SQL-Anweisungen verwenden, trennen Sie Bezeichner, die diese Regeln nicht einhalten, indem Sie doppelte Anführungszeichen oder Klammern verwenden.
Einige Regeln für das Format regulärer Bezeichner sind vom Kompatibilitätsgrad der Datenbank abhängig.
Katalogsortierung in Azure SQL-Datenbank
Sie können die logische Serversortierung in der Azure SQL-Datenbank nicht ändern oder festlegen. Sie können jedoch die Sortierreihenfolge für jede Datenbank separat für die Daten in der Datenbank und für den Katalog konfigurieren. Die Katalogsortierung bestimmt die Sortierung für Systemmetadaten, z. B. Objektbezeichner. Sie können beide Sortierungen unabhängig angeben, wenn Sie die Datenbank im Azure-Portal, in T-SQL mit CREATE DATABASE oder in PowerShell mit New-AzSqlDatabase erstellen.
Weitere Informationen und Beispiele finden Sie unter CREATE DATABASE. Geben Sie eine Sortierung für die Datenbank (COLLATE) und eine Katalogsortierung für Systemmetadaten und Objektbezeichner (CATALOG_COLLATION) an.
Katalogkollation in SQL-Datenbank in Microsoft Fabric
Derzeit ist die Sortierung einer SQL-Datenbank in Fabric standardmäßig SQL_Latin1_General_CP1_CI_AS, kann jedoch bei der Bereitstellung konfiguriert werden. Die Sortierung kann nach der Bereitstellung nicht aktualisiert werden. Sortierungen für einzelne Spalten werden unterstützt. Weitere Informationen zu Bereitstellungsoptionen finden Sie unter "Optionen zum Erstellen einer SQL-Datenbank in Fabric".