事务的格式:
---------------------------
set xact_abort on
begin tran
---SQL--语句
commit tran
--------------------------------------------
set xact_abort on -- Transact-SQL 语句产生运行时错误,整个事务将终止并回滚。
SET XACT_ABORT 为 OFF -- 只回滚产生错误的 Transact-SQL 语句
eg:
create table A
(
id int,
T_name varchar(10) not null
)
create table B
(
id int,
T_name varchar(10) not null
)
drop proc test_proc1
create proc test_proc1
as
SET XACT_ABORT On
begin tran
insert A select 1,'proc2'
insert B select 1,Null -----Error
commit tran
create proc test_proc2
as
insert A select 1,'proc2'
insert B select 1,Null
exec test_proc1
----注意存储过程test_proc1 与 test_proc2 的比较
select * from A
select * from B
delete from A