【问题标题】:inserting values into master and transaction table at the same time同时将值插入主表和事务表
【发布时间】:2009-09-29 11:56:47
【问题描述】:

插入到 masterTable 后,它会返回一个 ID。使用该 ID,我想在事务表中输入多行。

我正在使用两个单独的程序。问题是,在将记录插入到主表后,在插入事务表的过程中,如果发生任何中断,我想中止主表的相应插入。

我可以使用一个存储过程吗?

请帮忙..

【问题讨论】:

    标签: sql-server vb.net


    【解决方案1】:

    在事务中执行:

    BEGIN TRANSACTION
    EXECUTE prc_insert_master @value
    EXECUTE prc_insert_child @value, @result OUTPUT
    IF @result = -1 THEN
    BEGIN
        ROLLBACK
    END
    ELSE
        COMMIT
    

    【讨论】:

      【解决方案2】:

      要将多个数据库数据修改命令分组为“全有或全无”工作集,请使用事务。

      当您发出 ROLLBACK 时,BEGIN TRANSACTION 之后的任何和所有数据修改都可以完全撤消,就好像它们从未发生过一样。它们都可以通过发出 COMMIT 来永久化。

      您可以在过程中使用应用程序语言或 TSQL,根据返回值、错误捕获或您希望的任何其他逻辑发出 BEGIN TRANSACTION、COMMIT 和 ROLLBACK 命令。

      【讨论】:

        【解决方案3】:

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2013-06-17
          • 1970-01-01
          • 2018-05-07
          • 1970-01-01
          • 1970-01-01
          • 2014-01-28
          • 2015-09-28
          • 2020-07-20
          相关资源
          最近更新 更多