【发布时间】:2009-09-29 11:56:47
【问题描述】:
插入到 masterTable 后,它会返回一个 ID。使用该 ID,我想在事务表中输入多行。
我正在使用两个单独的程序。问题是,在将记录插入到主表后,在插入事务表的过程中,如果发生任何中断,我想中止主表的相应插入。
我可以使用一个存储过程吗?
请帮忙..
【问题讨论】:
标签: sql-server vb.net
插入到 masterTable 后,它会返回一个 ID。使用该 ID,我想在事务表中输入多行。
我正在使用两个单独的程序。问题是,在将记录插入到主表后,在插入事务表的过程中,如果发生任何中断,我想中止主表的相应插入。
我可以使用一个存储过程吗?
请帮忙..
【问题讨论】:
标签: sql-server vb.net
在事务中执行:
BEGIN TRANSACTION
EXECUTE prc_insert_master @value
EXECUTE prc_insert_child @value, @result OUTPUT
IF @result = -1 THEN
BEGIN
ROLLBACK
END
ELSE
COMMIT
【讨论】:
要将多个数据库数据修改命令分组为“全有或全无”工作集,请使用事务。
当您发出 ROLLBACK 时,BEGIN TRANSACTION 之后的任何和所有数据修改都可以完全撤消,就好像它们从未发生过一样。它们都可以通过发出 COMMIT 来永久化。
您可以在过程中使用应用程序语言或 TSQL,根据返回值、错误捕获或您希望的任何其他逻辑发出 BEGIN TRANSACTION、COMMIT 和 ROLLBACK 命令。
【讨论】:
使用事务 .read this for more information on sql transaction.
【讨论】: