Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Van toepassing op:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
SQL Analytics-eindpunt in Microsoft Fabric
Magazijn in Microsoft Fabric
SQL-database in Microsoft Fabric
De naam van het databaseobject wordt de id genoemd. Alles in SQL Server kan een id hebben. Servers, databases en databaseobjecten, zoals tabellen, weergaven, kolommen, indexen, triggers, procedures, beperkingen en regels, kunnen id's hebben. Id's zijn vereist voor de meeste objecten, maar zijn optioneel voor sommige objecten, zoals beperkingen.
Er wordt een object-id gemaakt wanneer het object is gedefinieerd. De identificator wordt vervolgens gebruikt om naar het object te verwijzen. Met de volgende instructie maakt u bijvoorbeeld een tabel met de id TableXen twee kolommen met de id's KeyCol en Description:
CREATE TABLE TableX (
KeyCol INT PRIMARY KEY,
Description NVARCHAR(80)
);
Deze tabel heeft ook een niet-benoemde beperking. De PRIMARY KEY beperking heeft geen id.
De sortering van een id is afhankelijk van het niveau waarop deze is gedefinieerd. Id's van objecten op exemplaarniveau, zoals aanmeldingen en databasenamen, worden de standaardsortering van het exemplaar toegewezen. Id's van objecten in een database, zoals tabellen, weergaven en kolomnamen, worden de standaardsortering van de database toegewezen. Twee tabellen met namen die alleen verschillen in hoofdlettergebruik, kunnen bijvoorbeeld worden gemaakt in een database met hoofdlettergevoelige sortering, maar kunnen niet worden gemaakt in een database met hoofdletterongevoelige sortering.
Note
De namen van variabelen of de parameters van functies en opgeslagen procedures moeten voldoen aan de regels voor Transact-SQL id's.
Klassen van identificatoren
Er zijn twee klassen id's:
Reguliere id's voldoen aan de regels voor de indeling van id's. Gewone identificatoren worden niet begrensd wanneer ze worden gebruikt in Transact-SQL statements.
USE AdventureWorks2022; GO SELECT * FROM HumanResources.Employee WHERE NationalIDNumber = 153479919;Afgesloten identificatoren worden omgeven door dubbele aanhalingstekens (
") of vierkante haken ([en]). Id's die voldoen aan de regels voor de indeling van id's, worden mogelijk niet gescheiden. Voorbeeld:USE AdventureWorks2022; GO SELECT * FROM [HumanResources].[Employee] --Delimiter is optional. WHERE [NationalIDNumber] = 153479919 --Delimiter is optional.
Id's die niet voldoen aan alle regels voor id's, moeten worden gescheiden in een Transact-SQL-instructie. Voorbeeld:
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.
Zowel reguliere als afgebakende identificaties moeten uit 1 tot en met 128 tekens bestaan. Voor lokale tijdelijke tabellen mag de id maximaal 116 tekens bevatten.
Regels voor reguliere id's
De namen van variabelen, functies en opgeslagen procedures moeten voldoen aan de volgende regels voor Transact-SQL id's.
Het eerste teken moet een van de volgende items zijn:
Een letter zoals gedefinieerd door de Unicode Standard 3.2. De Unicode-definitie van letters bevat Latijnse tekens van
atot en metz, vanAtot en met lettertekensZuit andere talen.Het onderstrepingsteken (
_), bij teken (@) of nummerteken (#).Bepaalde symbolen aan het begin van een id hebben een speciale betekenis in SQL Server. Een reguliere id die begint met het at-teken geeft altijd een lokale variabele of parameter aan en kan niet worden gebruikt als de naam van een ander type object. Een id die begint met een nummerteken geeft een tijdelijke tabel of procedure aan. Een id die begint met dubbele getaltekens (
##) geeft een globaal tijdelijk object aan. Hoewel het cijferteken of het dubbele cijferteken tekens kunnen worden gebruikt om de namen van andere typen objecten te beginnen, raden we deze procedure niet aan.Sommige Transact-SQL functies hebben namen die beginnen met dubbele bijtekens (
@@). Om verwarring met deze functies te voorkomen, moet u geen namen gebruiken die beginnen met@@.
Volgende tekens kunnen de volgende lijst bevatten:
Letters zoals gedefinieerd in de Unicode-standaard 3.2.
Decimale getallen uit Basic Latin of andere nationale scripts.
Het at-teken (), dollarteken (
@$), cijferteken (#) of onderstrepingsteken (_).
De id mag geen Transact-SQL gereserveerd woord zijn. SQL Server reserveert zowel de hoofdletters als kleine letters van gereserveerde woorden. Wanneer id's worden gebruikt in Transact-SQL instructies, moeten de id's die niet voldoen aan deze regels worden gescheiden door dubbele aanhalingstekens of haakjes. De woorden die zijn gereserveerd, zijn afhankelijk van het compatibiliteitsniveau van de database. Dit niveau kan worden ingesteld met behulp van de instructie ALTER DATABASE-compatibiliteitsniveau .
Ingesloten spaties of speciale tekens zijn niet toegestaan.
Aanvullende tekens zijn niet toegestaan.
Wanneer id's worden gebruikt in Transact-SQL instructies, moeten de id's die niet voldoen aan deze regels worden gescheiden door dubbele aanhalingstekens of haakjes.
Note
Sommige regels voor de indeling van reguliere id's zijn afhankelijk van het compatibiliteitsniveau van de database. Dit niveau kan worden ingesteld met behulp van het compatibiliteitsniveau ALTER DATABASE.
Cataloguscollatie in Azure SQL Database
U kunt de collatie van een logische server in Azure SQL Database niet wijzigen of instellen. U kunt de sorteringen van elke database echter afzonderlijk configureren voor gegevens in de database en voor catalogus. De catalogussortering bepaalt de sortering voor systeemmetagegevens, zoals object-id's. Beide sorteringen kunnen onafhankelijk worden opgegeven wanneer u de database maken in Azure Portal, in T-SQL met CREATE DATABASE, in PowerShell met New-AzSqlDatabase.
Zie CREATE DATABASE voor meer informatie en voorbeelden. Geef een sortering op voor de database (COLLATE) en een catalogussortering voor systeemmetagegevens en object-id's (CATALOG_COLLATION).
Cataloguscollatie in SQL-database in Microsoft Fabric
U kunt de sortering van de logische server niet wijzigen of instellen in SQL Database in Fabric.
Op dit moment is SQL_Latin1_General_CP1_CI_AS de sortering van een SQL-database in Fabric standaard en kan deze niet worden bijgewerkt. Sorteringen voor afzonderlijke kolommen worden ondersteund.
Verwante inhoud
- ALTER TABLE (Transact-SQL)
- Een DATABASE maken
- STANDAARD MAKEN (Transact-SQL)
- PROCEDURE MAKEN (Transact-SQL)
- REGEL MAKEN (Transact-SQL)
- MAAK TABEL AAN (Transact-SQL)
- CREATE TRIGGER (Transact-SQL)
- WEERGAVE MAKEN (Transact-SQL)
- DECLARE @local_variable (Transact-SQL)
- DELETE (Transact-SQL)
- INSERT (Transact-SQL)
- Gereserveerde trefwoorden (Transact-SQL)
- SELECT (Transact-SQL)
- UPDATE (Transact-SQL)