sql server ,oracle中触发器对同一个表进行触发操作。

create or replace trigger update_sys_ins_tasks
before update on sys_inst_tasks
for each row
declare
-- local variables here
finished number;
nowproc VARCHAR2(4000);
begin
finished := :new.finished;
nowproc := :new.nowproc;
if finished = 1 and nowproc <> '完成' then
:new.nowproc := '等待打印';
:new.task_status := 1;
:new.createtime := sysdate;

end if;
end update_sys_ins_tasks;

1、这里所说的同一个表 就是当这个表中有数据更新时 则 更改这个表中的某些字段。。

触发器的名字  update_sys_ins_tasks 

数据有更新时要更换数据的表名:sys_inst_tasks

finished number;   nowproc VARCHAR2(4000);  这两个为触发器触发的条件。

:new.nowproc := '等待打印';   :new.task_status := 1;    :new.createtime := sysdate;  这些为我要更新的内容。

2、这个是当sb_yzrwjlb 表中有数据时,更新 设备基础数据表
update_jcsjb 这个为触发器的名字
sb_yzrwjlb 触发数据的表。
rw  为触发触发数据表  sb_yzrwjlb 中有数据更新或者插入时的字段
设备基础数据表 为当 rw 有数据更新时 更新这个表中的 字段。
这里和上面不一样的就是,这里是对两个表进行的操作,上面是对一个表进行的操作。

create or replace trigger update_jcsjb
   after insert or update On sb_yzrwjlb
FOR EACH ROW
BEGIN
if :NEW.rw like '维修%' then
update 设备基础数据表 set 设备基础数据表.使用情况 = '停用' WHERE 设备基础数据表.资产编码 = :NEW.zcbm;
elsif :NEW.rw like '休息%' then
update 设备基础数据表 set 设备基础数据表.使用情况 = '闲置' WHERE 设备基础数据表.资产编码 = :NEW.zcbm;
else
update 设备基础数据表 set 设备基础数据表.使用情况 = '在用-忙' WHERE 设备基础数据表.资产编码 = :NEW.zcbm;
End if;
End;

SQL SERVER 的 根据同一个表中的字段 指定更改为某一字段后,另一个字段也更改。触发器
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
GO

ALTER   trigger   [dbo].[TRI_GZDB_RWHB]   on   [dbo].[GZDB_RWHB] 
For   update 
AS 
BEGIN
declare @ZGLD varchar(50), @GUID varchar(50)
if update(ZGLD)
begin
select @ZGLD=ZGLD,@GUID=GUID from INSERTED 
if @ZGLD = '张国'
update GZDB_RWHB set ZYLD='张国' where GUID = @GUID
--update GZDB_RWHB set ZYLD='aaa'
end
end
GZDB_RWHB 为更新字段的表名,

declare @ZGLD varchar(50), 要更新的字段名字   

@ZGLD为定义的变量。

@GUID varchar(50) 为

GZDB_RWHB  表的主键。

select @ZGLD=ZGLD,@GUID=GUID from INSERTED  给前面定义的变量  

@ZGLD ,

@GUID   

赋值。

 

if @ZGLD = '张国'        判断条件 如果 为'张国'的 话 就更新 zyld 字段 也为 ‘张国’。
update GZDB_RWHB set ZYLD='张国' where GUID =@GUID  根据
GZDB_RWHB  表的主键guid
去更新 zyld 列为 ‘张国’。
 
 
posted on 2012-01-11 16:03  小东北  阅读(3342)  评论(0编辑  收藏  举报