有一个我们使用的软件,我无法修改代码,但我可以修改数据库。
该表有3个键,组合必须是唯一的。这些是HRCo字节,类型nvarchar(1)和代码nvarchar(10)。
我想要发生的是当我更新像Description这样的随机字段时,我希望它能够找到具有相同类型和代码组合的所有行,并更新具有相同类型和代码但不同HRCo的其他行。
ALTER TRIGGER [dbo].[udHRCMu] ON [dbo].[bHRCM]
AFTER UPDATE
AS
BEGIN
SET NOCOUNT ON;
UPDATE bHRCM
SET
Description = i.Description,
SafetyYN = i.SafetyYN,
Notes = i.Notes,
CertPeriod = i.CertPeriod,
PTOTypeYN = i.PTOTypeYN,
PRLeaveCode = i.PRLeaveCode,
udHighRisk = i.udHighRisk,
udGroup = i.udGroup
FROM HRCM m
INNER JOIN inserted i ON m.HRCo <> i.HRCo
AND m.Type = i.Type
AND m.Code = i.Code;
END;
当此触发器生效时,它会修改该表中的所有行并使它们具有相同的Description,SafetyYN,Notes等。因此,它不会修改1或2行,而是修改400 +
还有一个插入触发器似乎正常工作,一旦添加了新的HRCo / Type / Code组合,它就会为不同的HRCo添加一个新行