--只要有错误,就回滚,没有则提交 begin Transaction myTran insert into mytable(f1,f2,f3) values(...) if @@error<>0 goto Err1 insert into mytable(f1,f2,f3) values(...) if @@error<>0 goto Err1 insert into mytable(f1,f2,f3) values(...) if @@error<>0 goto Err1commit tran myTran return .... Err1: rollback tran myTran
When SET XACT_ABORT is ON, if a Transact-SQL statement raises a run-time error, the entire transaction is terminated and rolled back 也可以这样: set xact_abort on begin Transaction myTran insert into mytable(f1,f2,f3) values(...) insert into mytable(f1,f2,f3) values(...) insert into mytable(f1,f2,f3) values(...) ....Commit Transaction myTran set xact_abort off
此答案是为标准答案 begin Transaction myTran insert into mytable(f1,f2,f3) values(...) insert into mytable(f1,f2,f3) values(...) insert into mytable(f1,f2,f3) values(...) if (@@error=0 ) Commit Transaction myTran else Rollback Transaction myTran结贴吧
begin distributed tranction yourtran insert into table1 values (,,,,) insert inot table2 values (,,,,) ....... commit tranction
begin Transaction myTran
insert into mytable(f1,f2,f3) values(...)
if @@error<>0 goto Err1
insert into mytable(f1,f2,f3) values(...)
if @@error<>0 goto Err1
insert into mytable(f1,f2,f3) values(...)
if @@error<>0 goto Err1commit tran myTran
return
....
Err1:
rollback tran myTran
也可以这样:
set xact_abort on
begin Transaction myTran
insert into mytable(f1,f2,f3) values(...)
insert into mytable(f1,f2,f3) values(...)
insert into mytable(f1,f2,f3) values(...)
....Commit Transaction myTran
set xact_abort off
begin Transaction myTran
insert into mytable(f1,f2,f3) values(...)
insert into mytable(f1,f2,f3) values(...)
insert into mytable(f1,f2,f3) values(...)
if (@@error=0 )
Commit Transaction myTran
else
Rollback Transaction myTran结贴吧
insert into table1 values (,,,,)
insert inot table2 values (,,,,)
.......
commit tranction
xhwly(wly)
sdhdy(大江东去...)
--------
其它的都是错误的~~