QUOTENAME (Transact-SQL)

Применимо к: даSQL Server (все поддерживаемые версии) ДаБаза данных SQL Azure ДаУправляемый экземпляр SQL Azure даAzure Synapse Analytics даПараллельное хранилище данных

Возвращает Юникод-строку с разделителями, образуя из строки ввода правильный идентификатор с разделителем SQL Server.

Значок ссылки на раздел Синтаксические обозначения в Transact-SQL

Синтаксис

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

Примечание

Ссылки на описание синтаксиса Transact-SQL для SQL Server 2014 и более ранних версий, см. в статье Документация по предыдущим версиям.

Аргументы

'character_string'
Строка символьных данных в Юникоде. Аргумент character_string имеет тип sysname, а его длина ограничена 128 символами. Если ввести более 128 символов, будет возвращено значение NULL.

'quote_character'
Односимвольная строка, используемая в качестве разделителя. Может быть одинарной кавычкой ( ' ), левой или правой квадратной скобкой ( [] ), двойной кавычкой ( " ), левой или правой круглой скобкой ( () ), знаком больше или меньше ( >< ), левой или правой фигурной скобкой ( {} ) либо обратным апострофом ( ` ). Если указан недопустимый символ, возвращается значение NULL. Если значение аргумента quote_character не задано, то используются скобки.

Типы возвращаемых данных

nvarchar(258)

Примеры

В следующем примере из строки abc[]def и символов [ и ] создается правильный идентификатор с разделителем SQL Server.

SELECT QUOTENAME('abc[]def');

Результирующий набор:

[abc[]]def]
  
(1 row(s) affected)  

Обратите внимание, что закрывающая квадратная скобка в строке abc[]def удвоена, чтобы указать на escape-символ.

В следующем примере строка, заключенная в кавычки, подготавливается к использованию при именовании столбца.

DECLARE @columnName NVARCHAR(255)='user''s "custom" name'
DECLARE @sql NVARCHAR(MAX) = 'SELECT FirstName AS ' + QUOTENAME(@columnName) + ' FROM dbo.DimCustomer'

EXEC sp_executesql @sql

Примеры: Azure Synapse Analytics и Система платформы аналитики (PDW)

В следующем примере из строки abc def и символов [ и ] создается правильный идентификатор с разделителем SQL Server.

SELECT QUOTENAME('abc def');   

Результирующий набор:

[abc def]  
  
(1 row(s) affected)  

См. также:

PARSENAME (Transact-SQL)
CONCAT (Transact-SQL)
CONCAT_WS (Transact-SQL)
FORMATMESSAGE (Transact-SQL)
REPLACE (Transact-SQL)
REVERSE (Transact-SQL)
STRING_AGG (Transact-SQL)
STRING_ESCAPE (Transact-SQL)
STUFF (Transact-SQL)
TRANSLATE (Transact-SQL)
Строковые функции (Transact-SQL)