BEGIN TRANSACTION
INSERT INTO TABLE2(bb) values('aaaa')
IF (@@error<>0)
begin
ROLLBACK TRANSACTION
return
end
INSERT INTO TABLE1(bb) values('aaaa')
IF (@@error<>0)
begin
ROLLBACK TRANSACTION
return
end
COMMIT TRANSACTION
INSERT INTO TABLE2(bb) values('aaaa')
IF (@@error<>0)
begin
ROLLBACK TRANSACTION
return
end
INSERT INTO TABLE1(bb) values('aaaa')
IF (@@error<>0)
begin
ROLLBACK TRANSACTION
return
end
COMMIT TRANSACTION
2:因先ROLLBACK后继续往下执行,到最后COMMIT时实际上没有启动TRANSACTION
INSERT INTO TABLE1(bb) values('aaaa')
-- the INSERT statement.
SELECT @tl_error = @@ERRORINSERT INTO TABLE2(bb) values('aaaa')SELECT @t2_error = @@ERROR
-- Test the error values.
IF @tl_error = 0 AND @t2_error = 0
BEGIN
-- Success. Commit the transaction.
PRINT 'success inserted'
COMMIT TRAN
END
ELSE
BEGIN
IF @tl_error<> 0
PRINT 'An error occurred during insert into table1.' IF @t2_error <> 0
PRINT 'An error occurred during insert into table2.' ROLLBACK TRAN
END
GO
INSERT INTO TABLE1(bb) values('aaaa')
-- the INSERT statement.
SELECT @tl_error = @@ERRORINSERT INTO TABLE2(bb) values('aaaa')SELECT @t2_error = @@ERROR
-- Test the error values.
IF @tl_error = 0 AND @t2_error = 0
BEGIN
-- Success. Commit the transaction.
PRINT 'success inserted'
COMMIT TRAN
END
ELSE
BEGIN
IF @tl_error<> 0
PRINT 'An error occurred during insert into table1.' IF @t2_error <> 0
PRINT 'An error occurred during insert into table2.' ROLLBACK TRAN
END
GO