1 out of 5 rated this helpful - Rate this topic

QUOTENAME (Transact-SQL)

Returns a Unicode string with the delimiters added to make the input string a valid Microsoft SQL Server delimited identifier.

Topic link iconTransact-SQL Syntax Conventions


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

Is a string of Unicode character data. character_string is sysname and is limited to 128 characters. Inputs greater than 128 characters return NULL.

'quote_character'

Is a one-character string to use as the delimiter. Can be a single quotation mark ( ' ), a left or right bracket ( [] ), or a double quotation mark ( " ). If quote_character is not specified, brackets are used.

nvarchar(258)

The following example takes the character string abc[]def and uses the [ and ] characters to create a valid SQL Server delimited identifier.

SELECT QUOTENAME('abc[]def')

Here is the result set.

[abc[]]def]

(1 row(s) affected)

Notice that the right bracket in the string abc[]def is doubled to indicate an escape character.

Did you find this helpful?
(1500 characters remaining)
Community Content Add
Annotations FAQ
Documentation bug

return type should be nvarchar(128) instead of nvarchar(258)

--This works correctly

select

quotename(replicate('a', 128))

--This returns null

select

quotename(replicate('a', 129))

Not a documentation bug. The max result can be 258. An example would be:

select quotename(replicate(']', 128)) returns 258 brackets.