通过


QUOTENAME (Transact-SQL)

applies to:SQL ServerAzure SQL 数据库Azure SQL 托管实例Azure Synapse AnalyticsAnalytics Platform System (PDW)SQL 分析 Microsoft Fabric<终结点 /c12>warehouse in Microsoft FabricSQL database in 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]

字符串 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]