You're missing my point. We were talking nested transactions, not savepoints
No matter how many open transactions there are, a ROLLBACK TRANSACTION always rolls back to the outermost transaction. If it's given a transaction name (and I did not say a savepoint name) the rollback rolls all open transactions back, not the one that's named in the rollback.
This does not roll back Tran1 and leave Tran2 and Tran3 open and uncommitted
BEGIN TRANSACTION Tran1
INSERT INTO dbo.TestingCleanup (Description)
VALUES ('Hi')
BEGIN TRANSACTION Tran2
INSERT INTO dbo.TestingCleanup (Description)
VALUES ('2')
BEGIN TRANSACTION Tran3
INSERT INTO dbo.TestingCleanup (Description)
VALUES ('3')
ROLLBACK TRANSACTION Tran1
Gail Shaw
Microsoft Certified Master: SQL Server, MVP, M.Sc (Comp Sci)
SQL In The Wild: Discussions on DB performance with occasional diversions into recoverability
GilaMonster (9/10/2011)
You're missing my point. We were talking nested transactions, not savepointsNo matter how many open transactions there are, a ROLLBACK TRANSACTION always rolls back to the outermost transaction. If it's given a transaction name (and I did not say a savepoint name) the rollback rolls all open transactions back, not the one that's named in the rollback.
This does not roll back Tran1 and leave Tran2 and Tran3 open and uncommitted
BEGIN TRANSACTION Tran1
INSERT INTO dbo.TestingCleanup (Description)
VALUES ('Hi')
BEGIN TRANSACTION Tran2
INSERT INTO dbo.TestingCleanup (Description)
VALUES ('2')
BEGIN TRANSACTION Tran3
INSERT INTO dbo.TestingCleanup (Description)
VALUES ('3')
ROLLBACK TRANSACTION Tran1
Thanks Gail, I did understand that - I am quite happy about that, but the statement you made was
A rollback always rolls everything back no matter what.
...and it was that statement that bothered me as someone reading that may be lead to believe that save points did not work, especially coming from someone as knowledgeable as yourself.
I just wanted to check that you were not meaning to give that impression (and also to sanity check myself as I knew that save points did work - but the way I read your post, it seemed to contradict that knowledge and I do take seriously any of your posts.)
Thanks.
MM
select geometry::STGeomFromWKB(0x0106000000020000000103000000010000000B0000001000000000000840000000000000003DD8CCCCCCCCCC0840000000000000003DD8CCCCCCCCCC08408014AE47E17AFC3F040000000000104000CDCCCCCCCCEC3F9C999999999913408014AE47E17AFC3F9C99999999991340000000000000003D0000000000001440000000000000003D000000000000144000000000000000400400000000001040000000000000F03F100000000000084000000000000000401000000000000840000000000000003D0103000000010000000B000000000000000000143D000000000000003D009E99999999B93F000000000000003D009E99999999B93F8014AE47E17AFC3F400000000000F03F00CDCCCCCCCCEC3FA06666666666FE3F8014AE47E17AFC3FA06666666666FE3F000000000000003D1800000000000040000000000000003D18000000000000400000000000000040400000000000F03F000000000000F03F000000000000143D0000000000000040000000000000143D000000000000003D, 0);
Viewing 13 posts - 31 through 42 (of 42 total)
You must be logged in to reply to this topic. Login to reply