sqlserver触发器 当表1数据更新时 向表二插入表1更新之后的数据?
sql 触发器 更新一个表 把记录插入另一个表
说明:
1、只标记了 update,没有标记 insert
2、假定 userid, gga,ggb 是 int 类型,你改成相应的类型
create trigger TriggerName on ABC
after upate
as
begin
--
declare @useridNew int;
declare @ggaNew int;
declare @ggbNew int;
--
select @useridNew = userid, @ggaNew = gga, @ggbNew = ggb
from inserted;
--
if update( gga ) or update( ggb)
begin
insert into CBA(userid, gga,ggb, tiem) values( @useridNew, @ggaNew,@ggbNew,
getdate() );
end
end
sql数据库 把表一的数据更新到表2上,怎么更新数据
你这个描述啊……
insert into 表2
select 车号
,max(载重)
,sum(实际载重)
from 表1
where 时间 between 开始时间 and 结束时间
group by 车号
至于max 和 sum那两个是不知道你是啥需求才写的……
SQL触发器更新另一张表的问题
create trigger T_updateA
on A
for update
as
if update(b)
begin
update B
set B.b = inserted.b
from inserted
where B.a = inserted.a -- where 条件是假设的,你自己去写
end
如何在触发器里写:当一张表被更新时,更新它关联的一张表
哎。。。刚开完会,不然早就弄好了,给你加了会儿班,呵呵。
环境—oracle
最不理想的就是行级触发器里面不用使用select原表等操作,而表级触发器又不能用:new和:old,
所以只能这样判断update、insert、delete来实现,否则得使用行级和表级和中间表才能实现,比较麻烦了。
--建表:
create table system.zhidao_20131014_tab2_1
(
HEAD_ID varchar2(10),
LINE_ID varchar2(10),
QTY number
);
create table system.zhidao_20131014_tab2_2
(
HEAD_ID varchar2(10),
SUMQTY number
);
--造数:
insert into system.zhidao_20131014_tab2_1
select 'H1','1',100 from dual
union all
select 'H1','2',200 from dual
union all
select 'H1','2',300 from dual
union all
select 'H1','2',100 from dual;
insert into system.zhidao_20131014_tab2_2
select 'H1',700 from dual;
commit;
--触发器:
create or replace trigger tr_zhidao
after insert or update or delete
on system.zhidao_20131014_tab2_1
for each row
begin
case
when updating then
update system.zhidao_20131014_tab2_2 t set SUMQTY=SUMQTY - :old.QTY + :new.QTY where t.head_id=:new.head_id;
when inserting then
update system.zhidao_20131014_tab2_2 t set SUMQTY=SUMQTY + :new.QTY where t.head_id=:new.head_id;
when deleting then
update system.zhidao_20131014_tab2_2 t set SUMQTY=SUMQTY - :old.QTY where t.head_id=:old.head_id;
end case;
end;
--测试:
--insert
insert into system.zhidao_20131014_tab2_1
select 'H1','3',300 from dual;
--delete
delete system.zhidao_20131014_tab2_1 where HEAD_ID='H1' and LINE_ID='3';
--update
update system.zhidao_20131014_tab2_1 set QTY=1000 where QTY=300;有问题再追问,望采纳啊。