有两个表: A表是 “入库单”,有如下字段:  单号 , 入库日期 ,制单人
          B表是 “入库明细”,字段如下:  单号,品种,单位,数量
      
          A表中的单号跟B表中的单号 内容是一样的,即是关联的。即A是头文件(记录仓单的主要信息,只会有一条记录;
而B是记录此仓单的入货具体信息(有什么品种,数量多少等等),会有多条记录。在客户端我会用一临时表用录入B表的内容,
在进行数据保存时, 我想用到 SQL的事务处理, 在向A表插入一条记录后,通过临时表再向B表插入多条记录, 请问怎样通过事务处理才可保证它们数据的一致性,要么同时成功,要么同时失败?这样的SQL 事务语句我不会写, 特向各位求教。希望能得到各位的帮助,谢谢!!  

解决方案 »

  1.   

    begin try
       begin tran
       --sql语句
       commit tran
    end try
    begin catch
       rollback tran
    end catch
      

  2.   

    首先很多谢楼上的回复!但这个结果不是我想要的。
    基本语法我知道。可否具体详细点?是这样的,在客户端,我会用一临时表(cursor) 来供用户录入数据, 然后通过循环, 逐一将临时表的内容付给变量,然后再保存到后端SQL 。即是向A表保存数据只有一个动作,而向B表保存数据时会有N次动作。
      

  3.   

    举个例子:比如入库单明细有5条记录,你可以在后台就写一个INSERT的存储过程,不考虑事务。然后在程序那里点击添加按钮的时候,进行事务控制,要么5条都添加,要么出错就回滚。