Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Wie setze ich eine Variable aus einer SQL-Abfrage?

Mit SELECT

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

Mit SET

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

Siehe diese Frage für den Unterschied zwischen der Verwendung von SELECT und SET in TSQL.

Warnung

Wenn diese SELECT -Anweisung gibt mehrere Werte zurück (anfangs schlecht):

  • Bei Verwendung von SELECT , wird der Variablen der zuletzt zurückgegebene Wert zugewiesen (wie womp sagte), ohne Fehler oder Warnung (dies kann Logikfehler verursachen)
  • Bei Verwendung von SET , tritt ein Fehler auf