Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
How Begin Tran and Rollback work?
Message
 
 
Information générale
Forum:
Microsoft SQL Server
Catégorie:
Autre
Versions des environnements
SQL Server:
SQL Server 2005
Divers
Thread ID:
01542374
Message ID:
01542379
Vues:
52
>Hi,
>
>I am running a long script against a database (SQL Server 2005). At the top of the script there is a line:
>
>
>BEGIN TRAN
>GO
>
>
>Then in the middle of the script, there are many places with code like this (where each table is being changed):
>
>
>IF @@ERROR<>0 OR @@TRANCOUNT=0 BEGIN IF @@TRANCOUNT>0 ROLLBACK SET NOEXEC ON END
>GO
>
>
>Does it mean that if the script runs into any problem, the above code will UNDO ALL changes (all tables) done to the database?
>
>TIA.

I just tested it and each BEGIN TRAN increments the @@TRANCOUNT.

In my tests it seems to work even with the GO. So, the transaction will start and all changes will not be commited until explicit COMMIT TRANSACTION or ROLLBACK TRANSACTION.

Here is a test
begin tran
go

select @@TRANCOUNT 
insert into dbo.CheckInfo (CheckAmount)
values (10),(12)
select * from dbo.CheckInfo 
GO
rollback transaction 

select * from dbo.CheckInfo
If it's not broken, fix it until it is.


My Blog
Précédent
Suivant
Répondre
Fil
Voir

Click here to load this message in the networking platform