QUOTENAME (Transact-SQL)

適用対象: はいSQL Server (サポートされているすべてのバージョン) はいAzure SQL データベース はいAzure SQL Managed Instance はいAzure Synapse Analytics はいParallel Data Warehouse

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'
区切り記号として使用する 1 つの文字を指定します。 単一引用符 ( ' )、左または右の角かっこ ( [] )、二重引用符 ( " )、左または右のかっこ ( () )、大なりまたは小なり記号 ( >< )、左または右の中かっこ ( {} )、またはバッククォート ( ` ) を指定できます。 使用できない文字が指定された場合は、NULL が返されます。 quote_character を指定しない場合は、角かっこが使用されます。

戻り値の型

nvarchar(258)

次の例では、文字列 abc[]def を受け取り、[ 文字と ] 文字を使用して、区切り記号で囲まれた有効な SQL Server 識別子を作成します。

SELECT QUOTENAME('abc[]def');

結果セットは次のようになります。

[abc[]]def]
  
(1 row(s) affected)  

文字列 abc[]def 内の右角かっこが 2 つ続いてエスケープ文字を表していることに注意してください。

次の例では、列に名前を付けるために使用する引用符で囲まれた文字列を準備します。

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)