插入masterTable后,它返回一个ID。使用该ID,我想在事务表中输入多行。
我正在使用两个单独的程序。问题是,在将记录插入到master之后,并且在插入事务表时,如果发生任何中断,我想中止主表的相应插入。
我可以使用一个存储过程吗?
请帮助..
答案 0 :(得分:2)
在交易中执行此操作:
BEGIN TRANSACTION
EXECUTE prc_insert_master @value
EXECUTE prc_insert_child @value, @result OUTPUT
IF @result = -1 THEN
BEGIN
ROLLBACK
END
ELSE
COMMIT
答案 1 :(得分:0)
将多个数据库数据修改命令分组为“全部或全部”工作集,使用事务。
当您发出ROLLBACK时,BEGIN TRANSACTION
之后的任何和所有数据修改都可以完全颠倒,就好像它们从未发生过一样。通过发出COMMIT,它们都可以永久化。
您可以在过程中使用应用程序语言或TSQL,根据返回值,错误捕获或您希望的任何其他逻辑发出BEGIN TRANSACTION,COMMIT和ROLLBACK命令。
答案 2 :(得分:0)
使用交易.read this for more information on sql transaction。