Affecter des variables pour des pools SQL dédiés dans Azure Synapse Analytics

Cet article fournit des conseils essentiels concernant l’affectation de variables T-SQL dans un pool SQL dédié.

Définir des variables via l’instruction DECLARE

Dans le pool SQL dédié, les variables sont définies à l’aide de l’instruction DECLARE ou SET. L’initialisation de variables avec l’instruction DECLARE constitue l’une des méthodes les plus flexibles pour définir une valeur de variable dans un pool SQL.

DECLARE @v  int = 0
;

De plus, vous pouvez utiliser cette instruction pour définir plusieurs variables à la fois. Vous ne pouvez pas utiliser SELECT ou UPDATE pour effectuer les opérations suivantes :

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

Il n’est pas possible d’initialiser et d’utiliser une variable au sein de la même instruction DECLARE. Illustrons notre propos : la commande de l’exemple suivant n’est pas autorisée, car l’élément @p1 est initialisé, mais également utilisé dans la même instruction DECLARE. Ainsi, l’exemple suivant génère une erreur :

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

Définir des valeurs avec l’instruction SET

L’instruction SET est couramment utilisée pour définir une variable unique.

Les instructions suivantes sont toutes valides pour définir une variable avec l’instruction SET :

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

Avec l’instruction SET, vous pouvez uniquement définir une variable à la fois. Toutefois, les opérateurs composés sont autorisés.

Limites

Vous ne pouvez pas utiliser l’instruction UPDATE pour attribuer des variables.

Étapes suivantes

Pour obtenir des conseils supplémentaires, consultez la vue d’ensemble du développement.