QUOTENAME (Transact-SQL)

適用範圍: 是SQL Server (所有支援的版本) 是Azure SQL Database 是Azure SQL 受控執行個體 是Azure Synapse Analytics 是平行處理資料倉儲

傳回 Unicode 字串,且附加了分隔符號,以便使輸入字串成為有效的 SQL Server 分隔識別碼。

主題連結圖示 Transact-SQL 語法慣例

語法

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

注意

若要檢視 SQL Server 2014 與更早版本的 Transact-SQL 語法,請參閱舊版文件

引數

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