- 论坛徽章:
- 0
|
请教下 DB2 触发器
//sql中
CREATE TRIGGER tri_sp_crk_del ON [dbo].[JL_CRKMC]
FOR DELETE
AS
declare @jlbh int --记录编号
declare @lx int --类型
declare @ckdm char(2) --仓库代码
declare @spbh char(20)
declare @sl decimal(9, 2)
declare @je decimal(15,2)
select @jlbh = jlbh, @lx = lx, @spbh = spbh, @sl = sl, @je = je from DELETED
select @ckdm = ckdm from jl_crk where jlbh = @jlbh and lx = @lx
if @lx = 0 --入库
begin
if Exists(select 1 from kc_je where kc_je.spbh = @spbh and kc_je.ckdm = @ckdm)
update kc_je set sl = sl - @sl , je = je - @je where spbh = @spbh and ckdm = @ckdm
else
insert into kc_je (ckdm, spbh, sl, je)
values (@ckdm, @spbh, -1 * @sl, -1* @je)
end
else if @lx = 1 --出库
begin
if Exists(select 1 from kc_je where kc_je.spbh = @spbh and kc_je.ckdm = @ckdm)
update kc_je set sl = sl + @sl , je = je + @je where spbh = @spbh and ckdm = @ckdm
else
insert into kc_je (ckdm, spbh, sl, je)
values (@ckdm, @spbh, @sl, @je)
end
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^我想转DB2:
/// 请帮我看下以下这段该怎么写呀
when (old_jl_mc.lx=0 )
begin
if Exists(select 1 from kc_je where kc_je.spbh = old_jl_crkmc.spbh and kc_je.ckdm =(select ckdm from jl_crk where jlbh = old_jl_crkmc.jlbh and lx = old_jl_crkmc.lx)) then
update kc_je set sl = sl - old_jl_crkmc.sl , je = je - old_jl_crkmc.je where spbh = old_jl_crkmc.spbh and ckdm =(select ckdm from jl_crk where jlbh = old_jl_crkmc.jlbh and lx = old_jl_crkmc.lx);
else
insert into kc_je (ckdm, spbh, sl, je)
values ((select ckdm from jl_crk where jlbh = old_jl_crkmc.jlbh and lx = old_jl_crkmc.lx) , old_jl_crkmc.spbh, -1 * old_jl_crkmc.sl, -1* old_jl_crkmc.je);
end if
end
when (old_jl_mc.lx)=1
begin
if Exists(select 1 from kc_je where kc_je.spbh = old_jl_crkmc.spbh and kc_je.ckdm =(select ckdm from jl_crk where jlbh = old_jl_crkmc.jlbh and lx = old_jl_crkmc.lx)) then
update kc_je set sl = sl + old_jl_crkmc.sl , je = je + old_jl_crkmc.je where spbh = old_jl_crkmc.spbh and ckdm =(select ckdm from jl_crk where jlbh = old_jl_crkmc.jlbh and lx = old_jl_crkmc.lx);
else
insert into kc_je (ckdm, spbh, sl, je)
values ((select ckdm from jl_crk where jlbh = old_jl_crkmc.jlbh and lx = old_jl_crkmc.lx) , old_jl_crkmc.spbh, 1 * old_jl_crkmc.sl, 1* old_jl_crkmc.je);
end if
end |
|