所以我想在不同的表中插入2个SQL。
一张插入表A,一张插入表B。
我先插入表A,然后插入表B.
我想确保如果由于某种原因,表B中的插入失败(永远不应该),那么表A中的插入将被回滚。
建议的方法是什么,为什么我似乎从来没有在任何示例代码中看到这个?
由于
答案 0 :(得分:3)
这称为transaction
,大多数数据库都支持显式事务。
示例语法为:
begin transaction
insert into tableA . . .
insert into tableB . . .
commit transaction;
具体语法可能因数据库而异。但意思是相同的:要么整个交易成功,要么失败。
答案 1 :(得分:2)
您需要使用Transaction
,这就是交易的原因。提供无害的。示例代码为
create procedure usp_insert
as
begin
begin transaction
insert into tableB ....;
insert into tableA ....;
commit;
if error
rollback;
end