Udostępnij za pośrednictwem


QUOTENAME (Transact-SQL)

Applies to:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)SQL analytics endpoint in Microsoft FabricWarehouse w Microsoft FabricSQL database in Microsoft Fabric

Zwraca ciąg Unicode z dodanymi ogranicznikami, aby ciąg wejściowy był prawidłowym identyfikatorem SQL Server delimited.

Transact-SQL konwencje składni

Składnia

QUOTENAME ( 'character_string' [ , 'quote_character' ] )

Arguments

'character_string'

Ciąg danych znaków Unicode. character_string to nazwa systemu i jest ograniczona do 128 znaków. Dane wejściowe większe niż 128 znaków zwracają wartość NULL.

'quote_character'

Ciąg jednoznaczny do użycia jako ogranicznik. Może to być pojedynczy cudzysłów ('), lewy lub prawy nawias ([lub ]), podwójny cudzysłów ("), nawias lewy lub prawy (( lub )), większy lub mniejszy niż znak ( lub <), lewy lub prawy nawias klamrowy (>{ lub ) lub }backtick ('').

Jeśli podasz niedopuszczalny znak cudzysłowu, NULL zostanie zwrócony. Jeśli nie określono quote_character , używane są nawiasy kwadratowe.

Typy zwracane

nvarchar(258)

Przykłady

Poniższy przykład przyjmuje ciąg znaków abc[]def i używa [ i ] znaków w celu utworzenia prawidłowego identyfikatora rozdzielanego SQL Server.

SELECT QUOTENAME('abc[]def');

Oto zestaw wyników.

[abc[]]def]

Prawy nawias w ciągu abc[]def jest podwajany, aby wskazać znak ucieczki.

Poniższy przykład przygotowuje cytatowany ciąg do użycia do nazewnictwa kolumny.

DECLARE @columnName AS NVARCHAR (255) = 'user''s "custom" name';

DECLARE @sql AS NVARCHAR (MAX) = 'SELECT FirstName AS ' + QUOTENAME(@columnName) + ' FROM dbo.DimCustomer';

EXECUTE sp_executesql @sql;

Przykłady: system platformy Azure Synapse Analytics i analizy (PDW)

Poniższy przykład przyjmuje ciąg znaków abc def i używa [ i ] znaków w celu utworzenia prawidłowego identyfikatora rozdzielanego SQL Server.

SELECT QUOTENAME('abc def');

Oto zestaw wyników.

[abc def]