Я использую триггеры вставки / обновления для обновления столбца второй таблицы 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
Мне нужно сгруппировать по номеру материала, потому что в таблицу tabSparePartMasterData_Temp
вставлены избыточные строки, которые я использую только для обновления Sparepart-Price в tabSparePart
.Но я предположил, что группа по отсортирует дубликаты (цена одинакова для любого дубликата).
Возможно, что вставленные / обновленные записи 'MaterialNumber
недоступны в tabSparepart
.В этом случае эта запись должна быть "пропущена".INNER JOIN
принимает это во внимание?