入力文字列を有効な SQL Server
構文
QUOTENAME ( 'character_string' [ , 'quote_character' ] )
引数
'character_string'
Unicode 文字データの文字列。
character_string は sysname 128 文字までに制限されます。 128 文字を超える入力は NULLを返します。
'quote_character'
区切り記号として使用する 1 文字の文字列。 単一引用符 (')、左または右の角かっこ ([ または ])、二重引用符 (")、左かっこまたは右かっこ (( または ))、符号 (> または <)、左または右中かっこ ({ または }) またはバックティック (''') を指定できます。
許容できない引用符文字を指定すると、 NULL が返されます。
quote_characterが指定されていない場合は、角かっこが使用されます。
戻り値の型
nvarchar(258)
例
次の例では、文字列 abc[]def を受け取り、[ と ] 文字を使用して、有効なSQL Server区切り識別子を作成します。
SELECT QUOTENAME('abc[]def');
結果セットは次のとおりです。
[abc[]]def]
文字列 abc[]def の右角かっこは、エスケープ文字を示すために 2 倍になります。
次の例では、列に名前を付けるために使用する引用符で囲まれた文字列を準備します。
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]