最近做数据插入,主要两个表,一个新闻信息表,一个资源表(主要是提供图片地址得存放)我现在处理是,插入一条数据到新闻信息表中,返回一个ID,然后,再插入资源信息和返回的ID到资源表中。(一条新闻信息可能会又多张图片)我做这样的插入的时候,插入的时候,我写了两个存储过程,返回了ID,然后再作为参数传入到另外的存储过程中,里面虽然用到了事务,单只是单个表的处理了如果这样,第一表成功插入,第二表在插入的时候遇到问题,那么插入不成功的话,要回滚第一个表操作要怎么办(难道是要第一个存储过程调用第二个过程呀)不知道,大家是怎么操作的,提供一下代码看看,谢谢

解决方案 »

  1.   

    可以用事务
    ms-help://MS.MSDNQTR.2003FEB.2052/cpguide/html/cpconprocessingtransactions.htm
      

  2.   

    写到一个存储过程:begin transaction
    insert into A(...)
    values(@p1,...)if @@error <> 0 goto ErrorHandlerinsert into B(id,...)
    values(Identity_Scope(),@p2)
    if @@error <> 0 goto ErrorHandlercommit transaction
    return 0ErrorHandler:
    rollback transation
    return -1go
      

  3.   

    如果是这样呢
    返回一个ID后,再插入到另外一个表中
    ID   value
    1     ksdksk
    1     sdsds
    1     sdsdsd
    1      sdsdsd这个处理起来,再前台学比较好把
      

  4.   

    我会先得到ID,再用事务插入两个表。当然是oracle