Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Platí pro:SQL Server
Azure SQL Database
Spravovaná instance Azure SQL
Azure Synapse Analytics
Analytics Platform System (PDW)
Koncový bod analýzy SQL v Microsoft Fabric
Sklad v Microsoft Fabric
Databáze SQL v Microsoft Fabric
Název databázového objektu se označuje jako jeho identifikátor. Všechno v SQL Serveru může mít identifikátor. Servery, databáze a databázové objekty, jako jsou tabulky, zobrazení, sloupce, indexy, triggery, procedury, omezení a pravidla, můžou mít identifikátory. Identifikátory jsou požadovány pro většinu objektů, ale jsou volitelné pro některé objekty, jako jsou omezení.
Identifikátor objektu se vytvoří při definování objektu. Identifikátor se pak použije k odkazu na objekt. Například následující příkaz vytvoří tabulku s identifikátorem TableXa dva sloupce s identifikátory KeyCol a Description:
CREATE TABLE TableX (
KeyCol INT PRIMARY KEY,
Description NVARCHAR(80)
);
Tato tabulka má také nepojmenované omezení. Omezení PRIMARY KEY nemá žádný identifikátor.
Kolace identifikátoru závisí na úrovni, na které je definován. Identifikátory objektů na úrovni instance, jako jsou přihlášení a názvy databází, jsou přiřazeny výchozí kolaci instance. Identifikátory objektů v databázi, jako jsou tabulky, zobrazení a názvy sloupců, jsou přiřazeny výchozí kolaci databáze. Například dvě tabulky s názvy, které se liší pouze v případě, lze vytvořit v databázi, která obsahuje kolaci s rozlišováním velkých a malých písmen, ale nelze ji vytvořit v databázi, která má kolaci nerozlišující malá a velká písmena.
Note
Názvy proměnných nebo parametry funkcí a uložených procedur musí splňovat pravidla pro identifikátory Transact-SQL.
Třídy identifikátorů
Existují dvě třídy identifikátorů:
Běžné identifikátory odpovídají pravidlům pro formát identifikátorů. Běžné identifikátory nejsou oddělené, když se používají v příkazech Transact-SQL.
USE AdventureWorks2022; GO SELECT * FROM HumanResources.Employee WHERE NationalIDNumber = 153479919;Identifikátory s oddělovači jsou uzavřeny v uvozovkách (
") nebo hranatých závorkách ([a]). Identifikátory, které splňují pravidla pro formát identifikátorů, nemusí být oddělené. Například:USE AdventureWorks2022; GO SELECT * FROM [HumanResources].[Employee] --Delimiter is optional. WHERE [NationalIDNumber] = 153479919 --Delimiter is optional.
Identifikátory, které nevyhovují všem pravidlům identifikátorů, musí být v příkazu Transact-SQL oddělené. Například:
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.
Běžné i oddělené identifikátory musí obsahovat 1 až 128 znaků. U místních dočasných tabulek může mít identifikátor maximálně 116 znaků.
Pravidla pro běžné identifikátory
Názvy proměnných, funkcí a uložených procedur musí splňovat následující pravidla pro identifikátory Transact-SQL.
První znak musí být jedna z následujících položek:
Písmeno definované standardem Unicode 3.2. Definice písmen Unicode zahrnuje znaky latinky od
adoz, odAdoZa také písmena z jiných jazyků.Podtržítko (
_), znaménko (@) nebo znaménko čísla (#).Některé symboly na začátku identifikátoru mají v SQL Serveru zvláštní význam. Běžný identifikátor začínající znakem at vždy označuje místní proměnnou nebo parametr a nedá se použít jako název žádného jiného typu objektu. Identifikátor, který začíná znaménkem čísla, označuje dočasnou tabulku nebo proceduru. Identifikátor, který začíná dvojitými znaky čísla („
##“) označuje globální dočasný objekt. I když se znaménko čísel nebo znaky s dvojitým číslem dají použít k zahájení názvů jiných typů objektů, nedoporučujeme tento postup.Některé Transact-SQL funkce mají názvy začínající dvojitými znaky (
@@). Abyste se vyhnuli nejasnostem s těmito funkcemi, neměli byste používat názvy začínající na@@.
Následující znaky můžou obsahovat následující seznam:
Písmena definovaná ve standardu Unicode 3.2.
Desetinná čísla ze základní latinky nebo jiných národních skriptů.
Znaménko zavináč (
@), znak dolaru ($), křížek (#) nebo podtržítko (_).
Identifikátor nesmí být Transact-SQL vyhrazeným slovem. SQL Server si vyhrazuje velká i malá písmena rezervovaných slov. Pokud se identifikátory používají v příkazech Transact-SQL, musí být identifikátory, které nevyhovují těmto pravidlům, odděleny dvojitými uvozovkami nebo hranatými závorkami. Rezervovaná slova závisí na úrovni kompatibility databáze. Tuto úroveň lze nastavit pomocí příkazu ALTER DATABASE compatibility level.
Vložené mezery nebo speciální znaky nejsou povolené.
Doplňkové znaky nejsou povolené.
Pokud se identifikátory používají v příkazech Transact-SQL, musí být identifikátory, které nevyhovují těmto pravidlům, odděleny dvojitými uvozovkami nebo hranatými závorkami.
Note
Některá pravidla pro formát běžných identifikátorů závisí na úrovni kompatibility databáze. Tuto úroveň lze nastavit pomocí úrovně kompatibility ALTER DATABASE.
Kolace katalogu ve službě Azure SQL Database
Kolaci logického serveru nemůžete ve službě Azure SQL Database změnit ani nastavit. Kolace jednotlivých databází ale můžete nakonfigurovat samostatně pro data v databázi a pro katalog. Kolace katalogu určuje kolaci pro systémová metadata, například identifikátory objektů. Obě kolace je možné zadat nezávisle při vytvoření databáze na webu Azure Portal, v T-SQL s CREATE DATABASE, v PowerShellu s New-AzSqlDatabase.
Podrobnosti a příklady najdete v tématu CREATE DATABASE. Zadejte kolaci pro databázi (COLLATE) a kolaci pro katalog určenou pro systémová metadata a identifikátory objektů (CATALOG_COLLATION).
Řazení katalogu v SQL databázi v Microsoft Fabric
Kolaci logického serveru v databázi SQL ve službě Fabric nemůžete změnit ani nastavit.
Ve výchozím nastavení je SQL_Latin1_General_CP1_CI_AS kolace databáze SQL v systému Fabric a nelze ji aktualizovat. Kolace jednotlivých sloupců jsou podporovány.
Související obsah
- ZMĚNIT TABULKU (Transact-SQL)
- Vytvořit databázi
- CREATE DEFAULT (Transact-SQL)
- CREATE PROCEDURE (Transact-SQL)
- CREATE RULE (Transact-SQL)
- VYTVOŘIT TABULKU (Transact-SQL)
- VYTVOŘIT SPOUŠŤ (Transact-SQL)
- VYTVOŘIT ZOBRAZENÍ (Transact-SQL)
- DECLARE @local_variable (Transact-SQL)
- DELETE (Transact-SQL)
- INSERT (Transact-SQL)
- Rezervovaná klíčová slova (Transact-SQL)
- SELECT (Transact-SQL)
- UPDATE (Transact-SQL)