关于触发器问题??好久没来了先奉上100分
IDWB 2006-01-23 11:19:31 我想让这个触发器循环触发,中间注解地方就是我设想的再次触发地方
但是事实不会第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