È possibile utilizzare l'assegnazione SELECT per assegnare più variabili. Questo codice genera una singola riga di costanti e assegna ciascuna a una variabile.
SELECT
@var1 = 1,
@var2 = 'Zeus'
Potete persino tabelle di query e di fare l'assegnazione in questo modo:
SELECT
@var1 = c.Column1,
@var2 = c.Column2,
FROM
Customers c
WHERE c.CustomerID = @CustomerID
Attenzione: Questo codice funziona come un ciclo while.
- Se ci sono più righe, ogni riga verrà assegnata alle variabili e l'ultima riga sarà quella lasciata lì. Se non hai specificato un ordine, hai rinunciato al controllo su quale riga sarà l'ultima riga.
- Se non ci sono righe, le variabili non verranno assegnate affatto. Le variabili non saranno impostate su null - rimarranno invariate. Questo è un problema chiave se l'assegnazione viene eseguita in un ciclo (in genere risultante in un ciclo infinito in quanto le variabili non cambiano mai).
Preferire utilizzando l'assegnazione SET sull'assegnazione SELECT. Utilizzare solo l'assegnazione SELEZIONA quando si considerano entrambi gli scenari sopra.
fonte
2009-01-22 15:00:22
Perfetto, grazie! – jandersson