次の方法で共有


QUOTENAME (Transact-SQL)

Applies to: SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW) Microsoft Fabric の SQL 分析エンドポイント Microsoft Fabric のウェアハウス

Unicode 文字列に区切り記号を追加して返すことで、入力文字列から区切り記号で囲まれた有効な SQL Server 識別子を作成します。

Transact-SQL 構文表記規則

構文

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

引数

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