永发信息网

表头((PORequest)的字段更新后,表体(PORequestEntry)字段也做相应的更新,如何写SQL触发器?

答案:1  悬赏:50  手机版
解决时间 2021-11-26 06:44
  • 提问者网友:杀生予夺
  • 2021-11-25 07:50
表头((PORequest)的字段更新后,表体(PORequestEntry)字段也做相应的更新,如何写SQL触发器?
最佳答案
  • 五星知识达人网友:杯酒困英雄
  • 2021-11-25 08:14
假定表名称为mytable,行标识字段为id。
CREATE TRIGGER [TR_Sample] ON [dbo].[mytable] 
FOR INSERT, UPDATe
AS
declare @fstatus int
declare @id numeric

DECLARE m_cursor CURSOR FOR
        SELECT id, Dstatus FROM inserted
OPEN m_cursor

FETCH NEXT FROM m_cursor
       INTO @id, @fstatus

WHILE @@FETCH_STATUS = 0
BEGIN
   IF @fstatus = 1
    UPDATe mytable SET Fqty= Fqty + FEntrySelfP0134 WHERe id = @id
  ELSE
    UPDATE mytable SET Fqty= Fqty - FEntrySelfP0134 WHERe id = @id

         FETCH NEXT FROM m_cursor
         INTO @id, @fstatus
END

CLOSE m_cursor
DEALLOCATE m_cursor追问感谢,如果不用游标,如何实现,我对游标不是很理解追答不用游标的过程:
假定表名称为mytable,行标识字段为id。
CREATE TRIGGER [TR_Sample] ON [dbo].[mytable] 
FOR INSERT, UPDATe
AS
declare @id numeric
SET @id = (SELECT id FROM inserted)
    UPDATE mytable SET Fqty= Fqty + FEntrySelfP0134 WHERe (id = @id) AND (fstatus = 1)
    UPDATE mytable SET Fqty= Fqty - FEntrySelfP0134 WHERe (id = @id) AND (fstatus = 0)
    ---这里再把你需要复制的语句写上
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯