表头((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)
---这里再把你需要复制的语句写上
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)
---这里再把你需要复制的语句写上
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯