比如我要保存2个表,A表1个记录,B表2个记录,其中B表包含A表外键。如果按照普通的情况,需要打开三次库,依次插入。这样就造成资源浪费,并且无法使用事务对数据一致性进行保护。可不可以将table直接抛到SQL里。直接在数据库里进行分解插入呢?请高手帮忙,十分感谢。

解决方案 »

  1.   

    用@@identity得到A表的主键
    set xact_abort on  
    begin tran
    insert into A values (...)
    insert into B values(@@Identity,...)
    commit tran
      

  2.   

    谢谢你的答案,可能是我的问题问的不好。在这里再说明一下:
    1.从C#里如何传入SQL
    2.如何对一个表进行多记录插入
      

  3.   

    @@Identity把第一次得到的值保存在一个变量中,多次insert的时候都是第一个@@identity的值
      

  4.   

    C#里的datatable ,在sql里对应的数据表叫什么呢?我需要知道在SQL里该如何循环这个数据表啊
      

  5.   

    我已经用传xml参数的方法解决了该问题,谢谢大家的帮助