Non ho mai capito a cosa serva una transazione nidificata. Il commit di una transazione nidificata non impegna nulla, ma diminuisce solo di @@TRANCOUNT
. E ROLLBACK
rollback tutto.Scopo delle transazioni nidificate
BEGIN TRANSACTION
//do an update
BEGIN TRANSACTION
//do an insert
COMMIT TRANSACTION
COMMIT TRANSACTION
Qual è la differenza con questo:
BEGIN TRANSACTION
//do an update
//do an insert
COMMIT TRANSACTION
Si prega di farmi un esempio perché devono essere utilizzati transazioni nidificate e come fanno la differenza.
saluti, Petar
Posso utilizzare i punti di sicurezza senza utilizzare transazioni nidificate. La procedura memorizzata è un buon punto (non ci avevo mai pensato). Ma se non utilizzo una stored procedure nella mia transazione (o non chiamo altro codice), perché dovrei aver bisogno di transazioni nidificate? Vedo continuamente esempi con transazioni nidificate e non vedo il punto di essi. –
Quindi le transazioni nidificate sono utili solo quando si chiama il codice transazionale esterno? –
Sono d'accordo con te e penso che siano utili per chiamare il codice transazionale esterno. La capacità tecnica di SQL Server di gestire transazioni nidificate è importante e non disponibile in tutti i sistemi DB. Ci sono alcuni casi (come con gli SP citati - dove si dovrebbe anche usare ['SET XACT_ABORT ON'] (http://stackoverflow.com/questions/1150032/what-is-the-benefit-of-using-set -xact-abort-on-in-a-stored-procedure)) dove possono nidificare "naturalmente". Non ho mai usato transazioni nidificate esplicite. – Lucero