关于触发器问题??好久没来了先奉上100分

IDWB IDWB 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
我想让这个触发器循环触发,中间注解地方就是我设想的再次触发地方
但是事实不会第2次触发请问高手原因,如何修改


CREATE TRIGGER trg_upd_PJDXB_info ON dbo.PJDXB
FOR update
AS
SET NOCOUNT ON
declare @DQKC real ,
@PJLB tinyint
set @PJLB=(Select PJLB from PJDZB,inserted where PJDZB.PJDH=inserted.PJDH)
if (not update(DQKC)) and (not update(DQZT) and (not update(KCDJ)))
begin
if @PJLB<10
begin
--------------------再次修改此表触发本修改触发器
update PJDXB
set DQKC=PJDXB.DQKC+inserted.SL-deleted.SL
from inserted,deleted
where PJDXB.ID=inserted.ID
--------------------想转到下面的一个注解
Update shangpin_info
Set ZXJHJ=inserted.DJ
From inserted
Where shangpin_info.SPID=inserted.SPID
End
Else
Begin
Update shangpin_info
Set ZXXSJ=inserted.DJ
From inserted
Where shangpin_info.SPID=inserted.SPID
end
end
else
begin
------------------------再次触发从这里开始
if update(DQKC)
begin
set @DQKC=(select DQKC from inserted)
if @DQKC=0
begin
update PJDXB
set DQZT=22
from inserted
where PJDXB.ID=inserted.ID
end
if (select DQZT from deleted)=22 and @DQKC>0
begin
update PJDXB
set DQZT=21
from inserted
where PJDXB.ID=inserted.ID
end
end
if (not update(DQZT))
begin
If not exists(select 1 from DQKCJL,inserted
where DQKCJL.SPID=inserted.SPID and
DQKCJL.CKH=inserted.CKH)
begin
Insert into DQKCJL
Select CKH,SPID,SL,DJ*SL from inserted
end
else
begin
Update DQKCJL
Set KCSL=KCSL+inserted.DQKC,
KCJE=KCJE+inserted.DQKC*inserted.KCDJ
From inserted
Where DQKCJL.SPID=inserted.SPID and
DQKCJL.CKH=inserted.CKH
Update DQKCJL
Set KCSL=KCSL-isnull(deleted.DQKC,0),
KCJE=KCJE-isnull(deleted.DQKC,0)*isnull(deleted.KCDJ,0)
From deleted
Where DQKCJL.SPID=deleted.SPID and
DQKCJL.CKH=deleted.CKH
end
end
end
SET NOCOUNT OFF












...全文
评论 5
收藏 已收藏
分享
返回顶部
IDWB
MS-SQL Server 34,876 成员 254,635 内容