Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Comment définir une variable à partir d'une requête SQL ?

Utiliser SELECT

SELECT @ModelID = m.modelid 
  FROM MODELS m
 WHERE m.areaid = 'South Coast'

Utiliser SET

SET @ModelID = (SELECT m.modelid 
                  FROM MODELS m
                 WHERE m.areaid = 'South Coast')

Voir cette question pour la différence entre l'utilisation de SELECT et SET dans TSQL.

Avertissement

Si ce SELECT l'instruction renvoie plusieurs valeurs (mauvais pour commencer):

  • Lorsque vous utilisez SELECT , la variable se voit attribuer la dernière valeur renvoyée (comme dit womp), sans aucune erreur ni avertissement (cela peut provoquer des bogues logiques)
  • Lors de l'utilisation de SET , une erreur se produira