次の方法で共有


QUOTENAME (Transact-SQL)

Applies to:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)SQL 分析 Microsoft Fabric<エンドポイント Microsoft FabricMicrosoft FabricSQL データベース内の Microsoft Fabric

入力文字列を有効な SQL Server delimited 識別子 にするために追加された区切り記号を含む Unicode 文字列を返>。

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]

文字列 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]