sql转换成oracle 触发器,急求
时间:2011-11-11
来源:互联网
CREATE TRIGGER [commtools_all] ON dbo.Commtools
FOR insert,UPDATE, DELETE
AS
declare @id int
declare @cid int
declare @tid int
declare @oldcommnum varchar(40)
declare @newcommnum varchar(40)
--------新增
if exists(select * from inserted) and not exists(select * from deleted)
begin
select @cid=c.cid ,@tid=i.tid,@id=i.id from caseindex as c,document as d,inserted as i where c.mid=i.mid and c.cid=d.cid
if not exists(select id from infoissuelist where issuetype=4 and identifyid=@id and operatetype=0)
begin
insert into InfoIssueList (identifyid,memo,issuetype,OperateType,Cid)
select id ,commnum,4,0,@cid from inserted
end
end
--------修改
else if exists(select * from inserted) and exists(select * from deleted) and update(commnum)
begin
select @cid = cid from caseindex where mid in(select mid from inserted)
select @oldcommnum = commnum from deleted
select @newcommnum = commnum,@tid = tid from inserted
if (@oldcommnum <> @newcommnum)
begin
--if exists(select * from document where status=2351 and cid=@cid)
begin
insert into InfoIssueList (identifyid,memo,issuetype,OperateType,Cid)
select id ,commnum,4,1,@cid from inserted
end
end
end
--------删除
else if not exists(select * from inserted) and exists(select * from deleted)
begin
select @id=id from deleted
if exists(select id from infoissuelist where issuetype=4 and identifyid=@id and operateType=0)
begin
select @cid = cid from caseindex where mid in(select mid from deleted)
insert into InfoIssueList (identifyid,memo,issuetype,OperateType,Cid)
select id ,commnum,4,2,@cid from deleted
end
end
上面这个是我在SQL Server2000里实现的,现在想改成在oracle里用,怎么都不行,请高手指点,解决马上给分
FOR insert,UPDATE, DELETE
AS
declare @id int
declare @cid int
declare @tid int
declare @oldcommnum varchar(40)
declare @newcommnum varchar(40)
--------新增
if exists(select * from inserted) and not exists(select * from deleted)
begin
select @cid=c.cid ,@tid=i.tid,@id=i.id from caseindex as c,document as d,inserted as i where c.mid=i.mid and c.cid=d.cid
if not exists(select id from infoissuelist where issuetype=4 and identifyid=@id and operatetype=0)
begin
insert into InfoIssueList (identifyid,memo,issuetype,OperateType,Cid)
select id ,commnum,4,0,@cid from inserted
end
end
--------修改
else if exists(select * from inserted) and exists(select * from deleted) and update(commnum)
begin
select @cid = cid from caseindex where mid in(select mid from inserted)
select @oldcommnum = commnum from deleted
select @newcommnum = commnum,@tid = tid from inserted
if (@oldcommnum <> @newcommnum)
begin
--if exists(select * from document where status=2351 and cid=@cid)
begin
insert into InfoIssueList (identifyid,memo,issuetype,OperateType,Cid)
select id ,commnum,4,1,@cid from inserted
end
end
end
--------删除
else if not exists(select * from inserted) and exists(select * from deleted)
begin
select @id=id from deleted
if exists(select id from infoissuelist where issuetype=4 and identifyid=@id and operateType=0)
begin
select @cid = cid from caseindex where mid in(select mid from deleted)
insert into InfoIssueList (identifyid,memo,issuetype,OperateType,Cid)
select id ,commnum,4,2,@cid from deleted
end
end
上面这个是我在SQL Server2000里实现的,现在想改成在oracle里用,怎么都不行,请高手指点,解决马上给分
作者: cannyllf 发布时间: 2011-11-11
把你改写的代码贴出来啊,哪里有问题,请顺手指出来。
作者: LuiseRADL 发布时间: 2011-11-12
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28