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.