27,579
社区成员
发帖
与我相关
我的任务
分享
表A 有一字段rwzt(任务状态),rwid
表B 有一字段wczt(完成状态),rwid
B表和A表是多对一的关系,
假如rwid为1,B表里对应rwid为1的企业有100家,
B每完成一家企业就需要更新一次B表的完成状态
当B表的rwid为1的所有wczt都完成以后,
需要一个触发器去更改A表的rwid为1的rwzt=1
描述的应该可以看懂吧,就是不会写触发器,希望有好心人帮我写一下谢谢了,分不多.
CREATE TRIGGER qy_sdhc_rwxd_tg
ON qy_sdhc_rwxd_zrdw
AFTER UPDATE
AS
BEGIN
--这里不会写
END
GO
CREATE TRIGGER trigger_B
ON B
AFTER UPDATE
AS
BEGIN
DECLARE @rwid INT
SELECT @rwid=rwid FROM deleted
IF not exists(select 1 from B where wczt<>1 and rwid=@rwid)
BEGIN
UPDATE A
SET rwzt=1
WHERE rwid=@rwid
END
END
DECLARE @rwid INT
SELECT @rwid=rwid FROM deleted
IF not exists(select 1 from B where wczt<>1 and rwid=@rwid)
BEGIN
UPDATE A
SET rwzt=1
WHERE rwid=@rwid
END
CREATE TRIGGER trigger_B
ON B
AFTER UPDATE
AS
BEGIN
DECLARE @i INT ,@rwid INT
SELECT @rwid=rwid FROM deleted
SELECT @i=COUNT(1) FROM b
WHERE wczt<>1
AND rwid=@rwid
IF @i<=0
BEGIN
UPDATE A
SET rwzt=1
WHERE rwid=@id
END
END