QUOTENAME(Transact-SQL)

適用於:SQL ServerAzure SQL DatabaseAzure SQL 受控執行個體Azure Synapse AnalyticsMicrosoft Fabric 中的 SQL 分析端點Microsoft Fabric 中的倉庫Microsoft Fabric 中的 SQL 資料庫

回傳一個 Unicode 字串,並加上分隔符,使輸入字串成為有效的 SQL Server delimited 識別碼

Transact-SQL 語法慣例

語法

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

引數

'character_string'

一串 Unicode 字元資料。 character_stringsysname,且限制為 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

以下範例取字串 abc def,並使用 [] 字元來建立有效的 SQL Server 分隔識別碼。

SELECT QUOTENAME('abc def');

結果集如下所示。

[abc def]