- Home
- Categorie
- Coding e Sistemistica
- Altri linguaggi per il web
- Rollback Transaction...
-
Rollback Transaction...
Ciao ragazzi, ho una domanda per voi
vorrei capire una volta per tutte come fare in una stored procedure in sql server 2000 il ROLLBACK TRANSACTION...
attendo vostre pronte notizie in meritograzie forum
ciao
-
Ci sono alcuni errori (errori non fatali) nelle query di modifica che non annullano l'operazione eseguita anche se è andata in errore. Ad esempio un inserimento potrebbe essere effettuato anche se andato in errore. Per evitare questo si può utilizzare la variabile globale @@ERROR per verificare la presenza di errori, e, nel caso, richiamare la funzione di rollback che annulla la modifica.
Esempio:
CREATE PROCEDURE sp_prova @id smallint, @nome ntext AS BEGIN INSERT INTO tabella (id, nome) VALUES (@id, @nome) IF @@ERROR <> 0 BEGIN ROLLBACK TRANSACTION RETURN END END GO
-
Grazie della risposta, ma sai sono parecchio duro in materia
In allegato trovate un file txt contenente la stored procedure che abbisogna del BEGIN TRANSACTION e ROLLBACK TRANSACTION... potreste dirmi, modificando pure la mia procedura, dove mettereste il ROLLBACK TRANSACTION
attendo vostre nuove
grazie
ciao
-
Il rollback lo si imposta all'avvenimento di un evento.
Nell'esempio da me riportato l'avvenimento è @@error <> 0
Il rollback annulla una transazione. Nel tuo caso non hai specificato né quando né dove inserire il rollback.
Sii più preciso altrimenti non ti si può aiutare.
Ciao.
-
@madai said:
Il rollback lo si imposta all'avvenimento di un evento.
Nell'esempio da me riportato l'avvenimento è @@error <> 0
Il rollback annulla una transazione. Nel tuo caso non hai specificato né quando né dove inserire il rollback.
Sii più preciso altrimenti non ti si può aiutare.
Ciao.
Il rollback andrebbe in tutti i casi in cui cerco di fare un INSERT, ovvero vorrei che vadano a buon fine tutti gli insert che devo effettuare...
grazie
ciao
-
prova ad inserire
IF @@ERROR <> 0 BEGIN ROLLBACK TRANSACTION RETURN END
prima dell'ultimo END