Sto cercando di capire come implementare questa in TSQLCome implementare un ciclo do-while in TSQL
do
update stuff set col = 'blah' where that_row = 'the right one'
select trash from stuff ...
until some_condition
L'unica frase flusso di controllo iterativo fornito da Transact-SQL è while (condition) sentences
che prima valuta la condizione e se questa condizione è vera, esegui la frase.
Sto pensando in uno scenario come eseguire un'istruzione UPDATE su una tabella finché non viene raggiunta una condizione che ha attivato l'ultimo UPDATE eseguito.
cosa più importante, sto cercando un approccio meno sporca a questo problema (Duplicare l'aggiornamento prima WHILE non ha molto senso per me come la frase UPDATE può essere arbitrariamente lungo e complesso)
EDIT: Il problema che sto cercando di risolvere riguarda più istruzioni UPDATE sotto la stessa tabella, ognuna delle quali prende e trasforma i valori dalle iterazioni precedenti. Questo non è possibile fare in una sola grande istruzione UPDATE, poiché ogni riga verrà valutata e aggiornata solo una volta, quindi un ciclo è l'unico modo che posso capire per far funzionare questo pasticcio.
Se stai pensando al controllo del flusso per il codice del database, stai sbagliando. –
Non essere così inflessibile, a volte la logica aziendale deve essere sviluppata nelle stored procedure. – Rodrigo
@rodrigo, he isn: parlando di un processo memorizzato, sta parlando dell'uso della teoria degli insiemi e non del tutto. È possibile evitare il ciclo circa il 99% del tempo ed è SEMPRE preferibile farlo se è possibile. – HLGEM