Поделиться через


QUOTENAME (Transact-SQL)

Область применения: SQL Server База данных SQL Azure Управляемый экземпляр SQL Azure конечной точке аналитики платформы Аналитики Azure Synapse Analytics (PDW) в Microsoft Fabric Хранилище в Microsoft Fabric

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

Соглашения о синтаксисе Transact-SQL

Синтаксис

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

Аргументы

'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)