Megosztás a következőn keresztül:


Adatbázis-azonosítók

A következőkre vonatkozik:SQL ServerAzure SQL DatabaseFelügyelt Azure SQL-példányAzure Synapse AnalyticsElemzési platformrendszer (PDW)SQL Analytics-végpont a Microsoft FabricbenRaktár a Microsoft FabricbenSQL-adatbázis a Microsoft Fabricben

Az adatbázis-objektum nevét az azonosítónak nevezzük. Az SQL Server minden eleme rendelkezhet azonosítóval. A kiszolgálók, adatbázisok és adatbázis-objektumok, például táblák, nézetek, oszlopok, indexek, eseményindítók, eljárások, korlátozások és szabályok azonosítókkal rendelkezhetnek. Az azonosítók a legtöbb objektumhoz szükségesek, de egyes objektumok, például kényszerek esetében nem kötelezőek.

Az objektum definiálásakor létrejön egy objektumazonosító. Az azonosító ezután az objektumra való hivatkozásra szolgál. A következő utasítás például létrehoz egy táblát az azonosítóval TableX, valamint két oszlopot az azonosítókkal KeyCol és Descriptiona következőkkel:

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

Ez a tábla meg nem nevezett kényszert is tartalmaz. A PRIMARY KEY kényszer nem rendelkezik azonosítóval.

Az azonosító rendezése attól függ, hogy milyen szinten van definiálva. A példányszintű objektumok (például bejelentkezések és adatbázisnevek) azonosítói a példány alapértelmezett rendezéséhez vannak rendelve. Az adatbázis objektumazonosítói, például táblák, nézetek és oszlopnevek az adatbázis alapértelmezett rendezési eleméhez vannak rendelve. Például két olyan tábla hozható létre, amelyek neve csak a kis- és nagybetűs írásmód esetén különbözik, egy olyan adatbázisban, amelyben a rendezési sorrend megkülönbözteti a kis- és nagybetűket, de nem hozhatók létre olyan adatbázisban, amelynek a rendezési sorrendje nem különbözteti meg a kis- és nagybetűket.

Note

A változók neveinek, illetve a függvények és a tárolt eljárások paramétereinek meg kell felelniük Transact-SQL azonosítókra vonatkozó szabályoknak.

Azonosítóosztályok

Az azonosítóknak két osztálya van:

  • A rendszeres azonosítók megfelelnek az azonosítók formátumára vonatkozó szabályoknak. A rendszeres azonosítók nem lesznek elválasztva, ha Transact-SQL utasításokban használják őket.

    USE AdventureWorks2022;
    GO
    
    SELECT *
    FROM HumanResources.Employee
    WHERE NationalIDNumber = 153479919;
    
  • A tagolt azonosítók idézőjelek (") vagy szögletes zárójelek ([ és ]) közé vannak zárva. Előfordulhat, hogy az azonosítók formátumára vonatkozó szabályoknak megfelelő azonosítók nem lesznek elválasztva. Például:

    USE AdventureWorks2022;
    GO
    
    SELECT *
    FROM [HumanResources].[Employee] --Delimiter is optional.
    WHERE [NationalIDNumber] = 153479919 --Delimiter is optional.
    

Az azonosítókra vonatkozó összes szabálynak nem megfelelő azonosítókat egy Transact-SQL utasításban kell elválasztani. Például:

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.

A normál és a tagolt azonosítóknak 1–128 karakterből kell lenniük. Helyi ideiglenes táblák esetén az azonosító legfeljebb 116 karakter hosszúságú lehet.

A normál azonosítókra vonatkozó szabályok

A változók, függvények és tárolt eljárások nevének meg kell felelnie Transact-SQL azonosítókra vonatkozó alábbi szabályoknak.

  1. Az első karakternek a következő elemek egyikének kell lennie:

    • A Unicode Standard 3.2 által meghatározott betű. A betűk Unicode szerinti definíciója tartalmaz latin karaktereket az a át z, A át Z, valamint más nyelvek betűkaraktereit is.

    • Az aláhúzásjel (_), az előjel (@) vagy a számjel (#).

      Bizonyos szimbólumok az azonosító elején speciális jelentéssel rendelkeznek az SQL Serverben. A helyszíni előjellel kezdődő rendszeres azonosítók mindig helyi változót vagy paramétert jelölnek, és nem használhatók más típusú objektumok neveként. A számjellel kezdődő azonosító egy ideiglenes táblát vagy eljárást jelöl. A kettős számjellel (##) kezdődő azonosító globális ideiglenes objektumot jelöl. Bár a számjel vagy a kettős számjel karakter használható más típusú objektumok nevének megkezdéséhez, ezt a gyakorlatot nem javasoljuk.

      Egyes Transact-SQL függvények neve kettős előjelekkel (@@) kezdődik. A függvényekkel való összetévesztés elkerülése érdekében ne használjon olyan neveket, amelyek a következővel @@kezdődnek: .

  2. A következő karakterek a következő listát tartalmazhatják:

    • A Unicode Standard 3.2-ben meghatározott betűk.

    • Decimális számok egyszerű latin vagy más nemzeti szkriptekből.

    • A kezdőjel (@), a dollárjel ($), a számjel (#) vagy az aláhúzásjel (_).

  3. Az azonosító nem lehet Transact-SQL fenntartott szó. Az SQL Server a fenntartott szavak nagybetűs és kisbetűs verzióit is lefoglalja. Ha az azonosítókat Transact-SQL utasításokban használják, a szabályoknak nem megfelelő azonosítókat idézőjelekkel vagy szögletes zárójelekkel kell elválasztani. A fenntartott szavak az adatbázis kompatibilitási szintjétől függenek. Ez a szint az ALTER DATABASE kompatibilitási szint utasításával állítható be.

  4. Beágyazott szóközök vagy speciális karakterek nem engedélyezettek.

  5. A kiegészítő karakterek nem használhatók.

Ha az azonosítókat Transact-SQL utasításokban használják, a szabályoknak nem megfelelő azonosítókat idézőjelekkel vagy szögletes zárójelekkel kell elválasztani.

Note

A normál azonosítók formátumára vonatkozó néhány szabály az adatbázis kompatibilitási szintjétől függ. Ez a szint az ALTER DATABASE kompatibilitási szinttel állítható be.

Katalógus rendezése az Azure SQL Database-ben

Nem módosíthatja és nem állíthatja be a logikai kiszolgáló rendezést az Azure SQL Database-ben. Az egyes adatbázisok rendezési beállításait azonban külön konfigurálhatja az adatbázisban és a katalógusban lévő adatokhoz. A katalógus rendezése határozza meg a rendszer metaadatainak, például az objektumazonosítóknak a rendezést. Mindkét kolláció egymástól függetlenül adható meg, amikor létrehozod az adatbázist az Azure portálon, T-SQL-lel a CREATE DATABASEparancs segítségével, vagy PowerShell-lel a New-AzSqlDatabaseparancs segítségével.

További részletekért és példákért lásd: CREATE DATABASE. Adja meg az adatbázis (COLLATE) rendezési szabályait, valamint a rendszer metaadataihoz és objektumazonosítóihoz tartozó katalógus rendezési szabályait (CATALOG_COLLATION).

Katalógus rendezése az SQL Database-ben a Microsoft Fabricben

Nem módosíthatja vagy állíthatja be a logikai kiszolgáló rendezését a SQL adatbázisában a Fabricen belül.

Jelenleg a Fabric rendszerében lévő SQL-adatbázis alapértelmezett rendezése SQL_Latin1_General_CP1_CI_AS, és nem módosítható. Az egyes oszlopok kollációi támogatottak.