C'è un modo per fare un loop attraverso una variabile di tabella in TSQL senza usare un cursore?
Diciamo che ho la seguente tabella semplice variabile:
declare @databases table
(
DatabaseID int,
Name varchar(15),
Server varchar(15)
)
-- insert a bunch rows into @databases
Dichiarare e usare un cursore è la mia unica opzione se volessi iterare attraverso le righe? C'è un altro modo?
231
3
Prima di tutto dovresti essere assolutamente sicuro che hai bisogno di iterare attraverso ogni riga - le operazioni basate su set saranno più veloci in ogni caso a cui posso pensare e normalmente useranno un codice più semplice.
A seconda dei vostri dati potrebbe essere possibile eseguire il loop solo usando le istruzioni select come mostrato di seguito:
Un'altra alternativa è usare una tabella temporanea:
L'opzione che dovresti scegliere dipende davvero dalla struttura e dal volume dei tuoi dati.
Nota: Se state usando SQL Server fareste meglio ad usare:
Usando
COUNT
dovrai toccare ogni singola riga della tabella, ilEXISTS
ha bisogno di toccare solo la prima (vedi Josef'risposta qui sotto).Ecco come farei io:
Potete usare un ciclo while: