try this:
CREATE TABLE MyTable (MyId INT IDENTITY (1,1),
MyCity NVARCHAR(50))
BEGIN TRANSACTION OuterTran
INSERT INTO MyTable VALUES ('Boston')
BEGIN TRANSACTION InnerTran
INSERT INTO MyTable VALUES ('London')
ROLLBACK TRAN
BEGIN TRANSACTION InnerTran
INSERT INTO MyTable VALUES ('paris')
IF (@@TRANCOUNT = 0)
BEGIN
PRINT 'All transactions were rolled back'
END
ELSE
BEGIN
PRINT 'Outer transaction is still open....rolling back...'
ROLLBACK TRANSACTION OuterTran
END
Message:
(1 row(s) affected)
(1 row(s) affected)
(1 row(s) affected)
Outer transaction is still open....rolling back...
Msg 6401, Level 16, State 1, Line 23
Cannot roll back OuterTran. No transaction or savepoint of that name was found.
It will be the else loop case.