Commit e rollback

martedì 28 aprile 2009 - 16.59

Cyberking Profilo | Junior Member

Ciao,
vorrei provare ad eseguire direttamente nell'editor di sql server express un update utilizzando il commit
da quello che ho letto dovrei fare così

BEGIN TRANSACTION
update miaTabella set campo='si'
where id=77206

commit

ed eseguo,
poi se se voglio tornare indietro

BEGIN TRANSACTION
update miaTabella set campo='si'
where id=77206

rollback

la prima mi funziona, la seconda mi da l'ok, ma il valore non torna come il precedente
cosa sto sbagliando?

http://www.trovashop.it

Jeremy Profilo | Guru

Ciao Andrea.
Sbagli concettualmente.
Il Commit si usa proprio per confermare le modifiche quindi, una volta fatto il Commit, non puoi più tornare indietro.
La transazione ha senso usarla in un caso come questo.

BEGIN TRANSACTION
update miaTabella set campo='si'
where id=77206

update miaTabella set campo='si'
where id=77207

se non ho errori eseguo il commit
altrimenti
eseguo il rollback
Ovviamente te lo sto spiegando concettualmente.


In questo caso, tutti e due i record vengono aggiornati solo nel caso in cui nessuna delle due Query abbia generato un'eccezione.

Facci sapere...
Ciao

Cyberking Profilo | Junior Member

Grazie,
forse ora mi è un pò più chiaro provo a fare qualche test?
C'è un modo per conoscere prima di eseguire la query in numero di record che andrà ad aggiornare?

Ciao e grazie ancora
http://www.trovashop.it

Jeremy Profilo | Guru

Ciao Andrea.
Quello che ti posso dire io riguarda la possibilità di controllare lo stato delle righe di un dataset prima dell'Update.... ma non credo che a te serva questo!!!Giusto?

Facci sapere...
Ciao.

Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5