Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
How Begin Tran and Rollback work?
Message
 
General information
Forum:
Microsoft SQL Server
Category:
Other
Environment versions
SQL Server:
SQL Server 2005
Miscellaneous
Thread ID:
01542374
Message ID:
01542379
Views:
51
>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
Previous
Next
Reply
Map
View

Click here to load this message in the networking platform