Azure Synapse Analytics の専用 SQL プールで使用する場合の動的 SQL

この記事には、専用 SQL プールで動的 SQL を使用する開発ソリューションのヒントが記載されています。

動的 SQL の例

専用 SQL プールのアプリケーション コードを開発する際に、柔軟性が高く汎用的なモジュール ソリューションを提供するための動的 SQL を使用する必要が生じる場合があります。 現時点では、専用 SQL プールでは BLOB データ型はサポートされていません。

BLOB データ型には varchar(max) および nvarchar(max) が含まれるため、BLOB データ型がサポートされないと、使用する文字列のサイズが制限される場合があります。

大量の文字列を構築するために、アプリケーション コードでこれらの型を使用した場合、コードをチャンクに分割し、代わりに EXEC ステートメントを使用する必要があります。

単純な例を次に示します。

DECLARE @sql_fragment1 VARCHAR(8000)=' SELECT name '
,       @sql_fragment2 VARCHAR(8000)=' FROM sys.system_views '
,       @sql_fragment3 VARCHAR(8000)=' WHERE name like ''%table%''';

EXEC( @sql_fragment1 + @sql_fragment2 + @sql_fragment3);

文字列が短い場合は、通常どおり sp_executesql を使用できます。

注意

動的 SQL として実行されるステートメントには、すべての T-SQL 検証規則が適用されます。

次のステップ

開発についてのその他のヒントは、開発の概要に関するページをご覧ください。