//得到刚插入记录的id
declare @a_id int
set @a_id =SCOPE_IDENTITY( )

解决方案 »

  1.   

    SCOPE_IDENTITY
    返回插入到同一作用域中的 IDENTITY 列内的最后一个 IDENTITY 值。一个作用域就是一个模块——存储过程、触发器、函数或批处理。因此,如果两个语句处于同一个存储过程、函数或批处理中,则它们位于相同的作用域中。语法
    SCOPE_IDENTITY( )
      

  2.   

    BEGIN TRAN
    declare @error  int
    declare @a varchar(100)
    declare @b varchar(100)
    declare @c varchar(100)
    declare @d varchar(100)
    declare @e varchar(100)
    declare @f varchar(100)
    set @a = (select [NAME] from inserted)
    set @b = (select [SEX] from inserted)
    set @c = (select [PSW] from inserted)
    set @d = (select [MAIL] from inserted)
    set @e = (select [BUY] from inserted)
    set @f = (select [SELL] from inserted)
    insert into AA([NAME],[SEX],[PSW],[MAIL]) values(@a,@b,@c,@d)
    set @error = @@error
    if @error <>0 
        begin 
    print '插入失败'
    rollback tran
        end declare @a_id int
    set @a_id =  scope_identity()  --@@a_id
    insert into BB([b_aid],[BUY],[SELL]) values(@a_id,@e,@f)
    set @error = @@error
    if @error<>0 
    begin
    print '插入失败'
    rollback tran 
    end
    commit tran