QUOTENAME (Transact-SQL)

适用于:Microsoft Fabric Microsoft Fabric Warehouse 中的 SQL Server Azure SQL 数据库 Azure SQL 托管实例 Azure Synapse Analytics Analytics Platform System (PDW) SQL Analytics 终结点

返回带有分隔符的 Unicode 字符串,分隔符的加入可使输入的字符串成为有效的 SQL Server 分隔标识符。

Transact-SQL 语法约定

语法

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

注意

若要查看 SQL Server 2014 (12.x) 及更早版本的 Transact-SQL 语法,请参阅早期版本文档

参数

'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]
  
(1 row(s) affected)  

请注意,字符串 abc[]def 中的右方括号有两个,用于指示转义符。

下面的示例准备一个用引号引起来的字符串,用于对列命名。

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 和 Analytics Platform System (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)