主表A,有自增字段sid,从表B,对应sid,
因为sid是自增字段,想在一个事务中插入二个表的数据,这时B表怎么插入sid的值,SELECT   @@IDENTITY 除外

解决方案 »

  1.   

    select max(sid) sid from A
      

  2.   

    倒,我的意思是想提前知道sid的值,或者是在表与表的约束或者关系中能自动插入B表的sid
      

  3.   

    select max(sid)+1 sid from A
      

  4.   

    select max(sid)+1 sid from A不严谨,如果有多个人同时提交时,前一个还没完全插入到库中,第二个查询的值与第一个插入的值取的max(sid)是一样的!
    我的意思是在数据库一级上有什么方法取出即将插入的sid的自增值
      

  5.   

    别忘了还有SCOPE_IDENTITY、IDENT_CURRENT两个函数可以用
      

  6.   

    我最后这么用的,第二条插入时insert into b values(IDENT_CURRENT(A))把第一条插入时的自增id取出的,二条插入在同一个事务中