首页 文章

使用GROUP BY更新触发器

提问于
浏览
1

我'm using insert-/update triggers to update a second table'的专栏 Price .

插入触发器似乎工作得很好,但是当我尝试更改SSMS中的单个记录时,我收到一个错误:

更新或删除的行值不会使行唯一,也不会更改多行(2行) .

这是我的更新触发器:

CREATE TRIGGER [dbo].[trgUpdateMasterData] ON [dbo].[tabSparePartMasterData_Temp]
AFTER UPDATE
AS

UPDATE    tabSparePart
SET      Price = MD.Price
FROM    tabSparePart INNER JOIN
(
    SELECT     inserted.[Material Number (SAP)] AS MaterialNumber, inserted.Price
    FROM          inserted
    GROUP BY [Material Number (SAP)], inserted.Price
) MD 
ON tabSparePart.SparePartName = MD.MaterialNumber

我需要按Material-Number分组,因为在表 tabSparePartMasterData_Temp 中插入了冗余行,我只用于更新 tabSparePart 中的Sparepart-Price . 但我假设小组将整理重复(任何重复的价格相同) .

它's possible that the inserted/updated records' MaterialNumbertabSparepart 中不可用 . 在这种情况下,此记录应为"skipped" . INNER JOIN 是否考虑到了这一点?

1 回答

相关问题