返回一个 Unicode 字符串,其中添加了分隔符,以使输入字符串成为有效的SQL Server 二元标识符。
语法
QUOTENAME ( 'character_string' [ , 'quote_character' ] )
参数
'character_string'
Unicode 字符数据的字符串。 character_string 是 sysname,且最多具有 128 个字符 。 大于 128 个字符的输入返回 NULL。
'quote_character'
要用作分隔符的一个字符字符串。 可以是单引号(')、左括号或右括号([或])、双引号(")、左括号或右括号((或))、大于或小于符号(或)、左大括号或右大括号(>{或<})或反引号(''')。
如果提供不可接受的引号字符, NULL 则返回。 如果未指定 quote_character ,则使用括号。
返回类型
nvarchar(258)
示例
以下示例采用字符串 abc[]def,并使用 [ 和 ] 字符创建有效的SQL Server分隔标识符。
SELECT QUOTENAME('abc[]def');
结果集如下。
[abc[]]def]
字符串 abc[]def 中的右括号将加倍以指示转义字符。
下面的示例准备一个用引号引起来的字符串,用于对列命名。
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;
示例:Azure Synapse Analytics和分析平台系统(PDW)
以下示例采用字符串 abc def,并使用 [ 和 ] 字符创建有效的SQL Server分隔标识符。
SELECT QUOTENAME('abc def');
结果集如下。
[abc def]