没有问题如果你不放心:begin tran
  insert 主表(name)values('aa')
  set @a=@@IDENTITY
  insert 从表(id,成绩) values(@a,'60')
  insert 从表(id,成绩) values(@a,'70')
  insert 从表(id,成绩) values(@a,'80')
commit tran这样它是作一个事务提交的

解决方案 »

  1.   

    SET XACT_ABORT   ON
    begin tran
      insert 主表(name)values('aa')
      set @a=@@IDENTITY
      insert 从表(id,成绩) values(@a,'60')
      insert 从表(id,成绩) values(@a,'70')
      insert 从表(id,成绩) values(@a,'80')
    commit tran
      

  2.   

    有问题!!!!!
    最好 select @id = ident_curernt('主表名')
         insert into 从表
    按照你@@identity,并发等等一系列问题,你都得考虑,并且出了问题,你会很难过的
      

  3.   

    有问题吧!试想一下:假如A用户已经执行 insert 主表(name)values('aa') ,此时假设ID值已经变为10,此时B用户执行”insert 主表(name)values('aa')“,此时ID值已经变为11,那么A用户再用
    insert 从表(id,成绩) values(@@IDENTITY,'60')
    insert 从表(id,成绩) values(@@IDENTITY,'70')
    insert 从表(id,成绩) values(@@IDENTITY,'80')
    此时的ID值应该是多少呢?