次の方法で共有


Azure Synapse Analytics で専用 SQL プールの変数を割り当てる

この記事では、専用 SQL プールで T-SQL 変数を割り当てるための重要なヒントについて説明します。

DECLARE を使用して変数を設定する

専用 SQL プール内の変数は、 DECLARE ステートメントまたは SET ステートメントを使用して設定されます。 DECLARE を使用して変数を初期化することは、SQL プールで変数値を設定する最も柔軟な方法の 1 つです。

DECLARE @v  int = 0
;

DECLARE を使用して、一度に複数の変数を設定することもできます。 SELECT または UPDATE を使用して次の操作を行うことはできません。

DECLARE @v  INT = (SELECT TOP 1 c_customer_sk FROM Customer where c_last_name = 'Smith')
,       @v1 INT = (SELECT TOP 1 c_customer_sk FROM Customer where c_last_name = 'Jones')
;

同じ DECLARE ステートメントで変数を初期化して使用することはできません。 この点を示すために、次の例は、@p1が初期化され、同じ DECLARE ステートメントで使用されるため、許可されていません。 そのため、次の例ではエラーが発生します。

DECLARE @p1 int = 0
,       @p2 int = (SELECT COUNT (*) FROM sys.types where is_user_defined = @p1 )
;

SET を使用して値を設定する

SET は、1 つの変数を設定するための一般的な方法です。

次のステートメントはすべて、SET を使用して変数を設定する有効な方法です。

SET     @v = (Select max(database_id) from sys.databases);
SET     @v = 1;
SET     @v = @v+1;
SET     @v +=1;

SET を使用して一度に設定できる変数は 1 つだけです。 ただし、複合演算子は許容されます。

制限事項

変数の割り当てに UPDATE を使用することはできません。

次のステップ

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