--一条记录 insert b(name) select 'AAA' insert a(name,bid) select 'AAA',@@identity--多条记录 create trigger tr on b for insert as insert a(name,bid) select I.name,b.id from inserted I join b on I.name=b.name
select id,name,bid=b.id from a inner join b on a.id=b.id
例子: 如果你是先插入a表的就这样:insert into a select 'name',ident_current('b')+ident_incr('b') 然后再插入b表:insert into b select 'name' 这样得到的a表的bid与b表的id一样如果你是先插入b表:insert into b select 'name' 然后a表:insert into a select 'name',@@identity
churchatp1(阿牛) “例子: 如果你是先插入a表的就这样:insert into a select 'name',ident_current('b')+ident_incr('b') 然后再插入b表:insert into b select 'name' 这样得到的a表的bid与b表的id一样如果你是先插入b表:insert into b select 'name' 然后a表:insert into a select 'name',@@identity ”你的这语句好奇怪哦。我都是用的下面的这种。 insert into a() values (); 像你的,我不知道该放哪好了。
我是要把得到的b 表的ID放到a 表中的bid
查询a表的最大id,然后作为b表待插入数据的bid插入b表
如果同时插入多条记录,需要用触发器
通过scope_identity(),@@identity,ident_current('table_name')查询最近刚刚插入的a表的id。
scope_identity()试用于当前的会话,@@identity没有限制,ident_current('table_name')则是对于指定表的。
通过scope_identity(),@@identity,ident_current('table_name')查询最近刚刚插入的a表的id。
scope_identity()试用于当前的会话,@@identity没有限制,ident_current('table_name')则是对于指定表的。"这个能给个例子么?
当然如果你是先插入b表的数据,然后插入a表数据
则可以通过下面的来得到a表插入时将会用到的id:ident_current('a表名')+ident_incr('a表名')
insert b(name) select 'AAA'
insert a(name,bid) select 'AAA',@@identity--多条记录
create trigger tr
on b
for insert
as
insert a(name,bid)
select I.name,b.id
from inserted I
join b on I.name=b.name
如果你是先插入a表的就这样:insert into a select 'name',ident_current('b')+ident_incr('b')
然后再插入b表:insert into b select 'name'
这样得到的a表的bid与b表的id一样如果你是先插入b表:insert into b select 'name'
然后a表:insert into a select 'name',@@identity
“例子:
如果你是先插入a表的就这样:insert into a select 'name',ident_current('b')+ident_incr('b')
然后再插入b表:insert into b select 'name'
这样得到的a表的bid与b表的id一样如果你是先插入b表:insert into b select 'name'
然后a表:insert into a select 'name',@@identity ”你的这语句好奇怪哦。我都是用的下面的这种。
insert into a() values ();
像你的,我不知道该放哪好了。