begin tran
insert...
if @@error<>0 goto error
update
if @@error<>0 goto error
commit tran
return
error:
rollback tran
===========================
INSERT 3
SET @Error = @@ERROR
IF @Error != 0 GOTO ERROR_HANDLER
INSERT 2
SET @Error = @@ERROR
IF @Error != 0 GOTO ERROR_HANDLER
INSERT 1
SET @Error = @@ERROR
IF @Error != 0 GOTO ERROR_HANDLER
COMMIT TRANSACTION
ERROR_HANDLER:
IF @@TRANCOUNT != 0 ROLLBACK TRANSACTION
@@error是全局变量
BEGIN TRANSACTION
4> UPDATE MyChecking SET Amount = Amount - $990.00
5> WHERE AccountNum = 12345
6> IF @@ERROR != 0
7> BEGIN
8> ROLLBACK TRANSACTION
9> RETURN
10> END
11> ELSE
12> UPDATE MySavings SET Amount = Amount + $990.00
13> WHERE AccountNum = 12345
14> IF @@ERROR != 0
15> BEGIN
16> ROLLBACK TRANSACTION
17> RETURN
18> END
19> ELSE
20> COMMIT TRANSACTION