Vous pouvez utiliser l'affectation SELECT pour affecter plusieurs variables. Ce code génère une seule ligne de constantes et affecte chacune d'entre elles à une variable.
SELECT
@var1 = 1,
@var2 = 'Zeus'
Vous pouvez même interroger des tableaux et effectuer des tâches de cette manière :
SELECT
@var1 = c.Column1,
@var2 = c.Column2,
FROM
Customers c
WHERE c.CustomerID = @CustomerID
Attention : Ce code fonctionne comme une boucle while.
- S'il y a plusieurs lignes, chaque ligne sera affectée aux variables et la dernière ligne sera celle qui reste. Si vous n'avez pas spécifié d'ordre, vous avez renoncé à contrôler quelle ligne sera la dernière.
- S'il n'y a pas de lignes, les variables ne seront pas du tout affectées. Les variables ne seront pas définies comme nulles - elles resteront inchangées. Il s'agit d'un problème majeur si l'affectation est effectuée dans une boucle (ce qui aboutit généralement à une boucle infinie puisque les variables ne changent jamais).
Préférez l'utilisation de l'affectation SET à l'affectation SELECT. N'utilisez l'affectation SELECT que si vous envisagez les deux scénarios ci-dessus.