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