例如我的存储过程中有两个插入语句:
insert into tableA (field1) values (aa)
insert into tableB (field1) values (bb)
如果在执行第二条查入语句是出错,第一条语句插入的值会写进数据库还是进行回滚,都不插入?
如果没有在存储过程中使用事务,就不会回滚
不会
除非你通过事物回滚
begin tran
insert into tableA (field1) values (aa)
insert into tableB (field1) values (bb)
commit tran
if @@error>0
rollback
不会,需要回滚的话需要加上事务
begin tran
1。不会的
2。这样来做就可以了
create proc testproc
as
SET XACT_ABORT on
begin tran
insert into tableA (field1) values (aa)
insert into tableB (field1) values (bb)
commit tran
SET XACT_ABORT off