QUOTENAME (Transact-SQL)

适用于: SQL Server Azure SQL 数据库 Azure SQL 托管实例 Azure Synapse Analytics 分析平台系统 (PDW) Microsoft Fabric 中的 SQL 分析端点 Microsoft Fabric 中的仓库

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

Transact-SQL 语法约定

语法

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]
  
(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)