У меня есть две таблицы, Table_A и Table_B. Таблица_A имеет отношение «один ко многим» с таблицей «B».
После вставки записи в дочернюю таблицу (Table_B) я хочу использовать триггер для извлечения значения из поля в родительской таблице (Table_A) и обновления текущей вставленной записи в Table_B.
TABLE_A
PK|EmpID|MemID|Firstname|Lastname
----------------------------------
1 |1234 |AB123|John | Doe
2 |5678 |CD456|Jane | Smith
TABLE_B
PK|EmpID|MemID|Description
---------------------
1 |1234 |NULL |Finance
2 |1234 |NULL |IT
3 |5678 |NULL |Finance
4 |5678 |NULL |Management
Триггер должен получить значение MemID из Table_A и обновить его соответствующее значение в Table_B, где [Table_A]. [EmpID] = [Table_B]. [EmpID]. Конечно, после 4 вставок в Таблицу B результаты должны быть следующими:
PK|EmpID|MemID|Description
---------------------
1 |1234 |AB123|Finance
2 |1234 |AB123|IT
3 |5678 |CD456|Finance
4 |5678 |CD456|Management
Я интенсивно искал другие технические сайты, но не могу найти ни одного с этим конкретным сценарием. Как отчаянный шаг я зарегистрировался на этом сайте, и это будет мой первый пост о помощи.
Ниже приведена моя тщетная попытка создания первого запуска в MS SQL Server 2008 R2.
CREATE TRIGGER dbo.trgInsMemID
ON dbo.Table_B
AFTER INSERT
AS
BEGIN
UPDATE dbo.Table_B
SET MemID =
(SELECT MemID
FROM inserted i
JOIN dbo.Table_A c ON c.EmpID = i.EmpID)
FROM dbo.Table_B b
JOIN inserted i ON i.MemID = b.MemID
END