SQL触发器,两表结构相同,表A新增一条记录后马上触发把该条记录插入到表B,只能一条一条触发最新的记录
展开全部
create trigger Mytrg
on A
for insert
as
begin
insert into B select * from inserted
end
触发器本身的工作原理就是一条一条的处理,插入1条自动处理1次,一次批插入N条,触发器处理N次
for insert 触发器的工作原理:
DBMS在数据进行插入的时候,每插入一条记录后触发触发器,将插入的所有数据保存在inserted临时表中,
以上范例中:insert into B select * from inserted 就是将inserted临时表中的数据插入到B表中,
此次触发器执行完毕,系统自动删除inserted表.如果批插入多条,将再次出发此触发器
基本要求:B表结构和A表结构一模一样.
其结果符合楼主所有要求
on A
for insert
as
begin
insert into B select * from inserted
end
触发器本身的工作原理就是一条一条的处理,插入1条自动处理1次,一次批插入N条,触发器处理N次
for insert 触发器的工作原理:
DBMS在数据进行插入的时候,每插入一条记录后触发触发器,将插入的所有数据保存在inserted临时表中,
以上范例中:insert into B select * from inserted 就是将inserted临时表中的数据插入到B表中,
此次触发器执行完毕,系统自动删除inserted表.如果批插入多条,将再次出发此触发器
基本要求:B表结构和A表结构一模一样.
其结果符合楼主所有要求
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
修改用update触发器就可以了 在inserted中找出新数据然后象B表中插入相应的数据,在你修改 A表的时候就自动触发触发器。
create trigger tri_A
on A
for update
as
insert into 列名 select 列名 from inserted
go
update A set 相应的列=新值 where 条件
create trigger tri_A
on A
for update
as
insert into 列名 select 列名 from inserted
go
update A set 相应的列=新值 where 条件
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
插入B表时要向A表中插入数据吗?需要的话,就需要用替代触发器,
关于替代触发器:参考:http://hi.baidu.com/420350501/blog/item/ed3c9b1b0af7206df724e4e8.html
如果不需要,用一般的触发器就可以解决问题。
create trigger test_bir before insert on a for each row
begin
insert into b values(:new.id,........);
end ;
关于触发器的简单用法:http://hi.baidu.com/420350501/blog/item/1a80c655f320ff818d5430ef.html
关于替代触发器:参考:http://hi.baidu.com/420350501/blog/item/ed3c9b1b0af7206df724e4e8.html
如果不需要,用一般的触发器就可以解决问题。
create trigger test_bir before insert on a for each row
begin
insert into b values(:new.id,........);
end ;
关于触发器的简单用法:http://hi.baidu.com/420350501/blog/item/1a80c655f320ff818d5430ef.html
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
插入时有一个inserted表啊。。。
用变量得到插入的这个值可以不。
用变量得到插入的这个值可以不。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询