【发布时间】:2017-08-29 23:26:51
【问题描述】:
我有一个无法更改表结构的 Maximo 数据库。我希望在创建或更新主电子邮件地址时将其复制到 PERSON 表中。以下结构描述了 PERSON 表和 EMAIL 表
PERSON 表:
PERSONID | EMAIL | ...(other irrelevant columns)...
EMAIL 表:
PERSONID | EMAILADDRESS | ISPRIMARY | ...(other irrelevant columns)...
如您所见,这两个表在 PERSONID 列上链接。这是我希望触发器执行的操作:
如果更新 EMAIL 表或插入新行,我想将 EMAILADDRESS 字段复制到 PERSON 表上的相应条目(由 PERSONID 链接)如果 ISPRIMARY 字段等于 1(1 表示主要,0 表示次要)。
我没有编写很多触发器,所以我想确保我只查看正在更新或插入到 EMAIL 表中的行,并且只有在有新的/更新的主电子邮件地址时才更新 PERSON 表。提前感谢您的所有帮助!
更新 1:
在查看了 Cade 的回复后,我开始形成以下触发器:
CREATE TRIGGER EMAIL_update ON UPDATE,INSERT AS BEGIN
UPDATE p
SET p.email = i.emailaddress
FROM dbo.PERSON as p
INNER JOIN inserted AS i ON i.PERSONID = p.PERSONID AND i.isprimary=1
END
我相信触发器应该在任何时候更新或插入电子邮件表时工作。
【问题讨论】: