我需要你的帮助。我一直在研究一个触发器声明,它似乎没有起作用。
当更新另一个名为 membership
的表上的列时,我需要帮助编写一个触发器来更新名为 serialcode
的表。< / p>
DETAILS:我有两个名为membership
和serialcode
的表。成员资格表包含以下列
id fullname email date state sn
并且序列码表只有
id sn
我希望更新会员资格中的 sn ,并更新序列码中 sn 的值,其中成员身份 ID 表格与序列码表格中的 ID 相同。
以下是我能够在下面写的内容
CREATE TRIGGER MembershipSerialCode
BEFORE UPDATE ON serialcode
FOR EACH ROW
BEGIN
if :new.sn != :old.sn
then
UPDATE membership m
set membership.sn = :new.sn
where m.id = :new.id;
end if;
END;
谢谢。
麦克
答案 0 :(得分:0)
你可以尝试一下,如果你有幸实现它,请告诉我吗?
CREATE Trigger TriggerName
ON SerialNumberTable FOR UPDATE
AS
IF (Update(sn)) -- This is the column on SerialCodeTable that will be updated first
BEGIN
IF EXISTS (Select i.id
FROM Deleted d INNER JOIN Inserted i
ON d.id = i.id
AND d.sn <> i.sn)
BEGIN
UPDATE MembershipTable SET MembershipTable.sn = i.sn
FROM Inserted i
WHERE MembershipTable.id = i.id
END
END