CREATE OR REPLACE TRIGGER "DYT"."UPT_BSS97_TRIG" BEFORE
UPDATETIME OF "ACC_NBR","LRN", "TYPE","PAUSE_STS", "PROD_ID", "SERV_STS", "SSB_TYPE","NAN_TYPE","ONLY_ID","GROUP_ID","NT_TYPE","LANG_ID","OFF_BEGIN","OFF_END","ASS_ID","UPDATETIMEIND" ON "MC_BSS97" FOR EACH ROW
begin
IF :new.ssb_type<>:old.ssb_type and :new.ssb_type>0 then
:new.canceltime := sysDATETIME;
END IF;
IF (:new.ssb_type<>:old.ssb_type) or
(:new.nan_type<>:old.nan_type) or
(:new.serv_sts<>:old.serv_sts) or
(:new.pause_sts<>:old.pause_sts) or
(:new.prod_id<>:old.prod_id) or
(:new.lrn<>:old.lrn ) or
(:new.only_id<>:old.only_id) or
(:new.group_id<>:old.group_id ) or
(:new.nt_type<>:old.nt_type) or
(:new.lang_id<>:old.lang_id) or
(:new.off_begin<>:old.off_begin ) or
(:new.off_end<>:old.off_end ) or
(:new.ass_id<>:old.ass_id ) or
(:new.type<>:old.type) then
:new.modtime := sysDATETIME;
select upDATETIME97_seq.nextval into :new.upDATETIMEInd from dual;
END IF;
IF (:new.upDATETIMEInd<:old.upDATETIMEInd) then
select upDATETIME97_seq.nextval into :new.upDATETIMEInd from dual;
END IF;
END;
大家好,麻烦给我看下这个用oracle写的触发器怎样转换成MSSQL的? 谢谢!!!
UPDATETIME OF "ACC_NBR","LRN", "TYPE","PAUSE_STS", "PROD_ID", "SERV_STS", "SSB_TYPE","NAN_TYPE","ONLY_ID","GROUP_ID","NT_TYPE","LANG_ID","OFF_BEGIN","OFF_END","ASS_ID","UPDATETIMEIND" ON "MC_BSS97" FOR EACH ROW
begin
IF :new.ssb_type<>:old.ssb_type and :new.ssb_type>0 then
:new.canceltime := sysDATETIME;
END IF;
IF (:new.ssb_type<>:old.ssb_type) or
(:new.nan_type<>:old.nan_type) or
(:new.serv_sts<>:old.serv_sts) or
(:new.pause_sts<>:old.pause_sts) or
(:new.prod_id<>:old.prod_id) or
(:new.lrn<>:old.lrn ) or
(:new.only_id<>:old.only_id) or
(:new.group_id<>:old.group_id ) or
(:new.nt_type<>:old.nt_type) or
(:new.lang_id<>:old.lang_id) or
(:new.off_begin<>:old.off_begin ) or
(:new.off_end<>:old.off_end ) or
(:new.ass_id<>:old.ass_id ) or
(:new.type<>:old.type) then
:new.modtime := sysDATETIME;
select upDATETIME97_seq.nextval into :new.upDATETIMEInd from dual;
END IF;
IF (:new.upDATETIMEInd<:old.upDATETIMEInd) then
select upDATETIME97_seq.nextval into :new.upDATETIMEInd from dual;
END IF;
END;
大家好,麻烦给我看下这个用oracle写的触发器怎样转换成MSSQL的? 谢谢!!!
解决方案 »
- 向存储过程传一个参数,根据参数让游标的sql发生变化
- 怎样将字段中存的字符串拼接成特定格式的字符串
- [向ALL提问]=====求一计算时间差函数=====
- RAC 的疑问
- 有两台服务器,分别安装两个不同的数据库ncdc和ncdz,现在在ncdc的库中写一个存储过程
- 请教在存储过程里使用truncate的问题。
- 数据库建表怎么不对,望告知!!!
- 大家帮帮忙,下面的sql还能怎么优化,现在执行它一共才400多条纪录得花费近一分钟的时间!
- ORACLE 8.1.6的客户端和Enterprise Editon可以安装在同一机器上么,需注意什么?
- oracle 数据库 存储过程
- oracle 8.05 报ORA-00205错误无法启动,请求帮助!
- 查询其他用户的表可以不写shema直接写表名么?
我给大家说下功能....麻烦各位给我翻译下哦!谢谢``````
这代码就是说:当更新这些指定字段时,进行比较.其中:new开头指的是字段更新前的值.:old 开头指的是字段更新后的值;sysDATETIME是系统时间. select upDATETIME97_seq.nextval into :new.upDATETIMEInd from dual; 这话是说给更新前的upDATETIMEInd 行号加一.
还有update97_seq.nextval.是oracle里的序列 就是取下一个序号的意思