Tengo dos tablas, Table_A y Table_B. Table_A tiene una relación de uno a muchos con Table_B.¿Cómo puedo escribir un activador de actualización para actualizar la tabla actual en función de un valor en otra tabla en SQL Server 2008?
Después de insertar un registro en la tabla secundaria (Table_B) Quiero usar un disparador para obtener un valor de un campo en la tabla padre (Table_A) y actualizar el registro actualmente insertado en 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
El disparador debe agarrar el valor MemID de TABLE_A y actualizar su valor correspondiente en Table_B donde [TABLE_A]. [EmpID] = [ Table_B]. [EmpID]. Por supuesto, después de 4 insertos en Table_B los resultados deberían ser los siguientes:
PK|EmpID|MemID|Description
---------------------
1 |1234 |AB123|Finance
2 |1234 |AB123|IT
3 |5678 |CD456|Finance
4 |5678 |CD456|Management
ampliamente que han buscado otros sitios técnicos, pero parece que no puede encontrar uno con este escenario particular. Como un movimiento desesperado me he registrado en este sitio y esta sería mi primera publicación para obtener ayuda.
El siguiente es mi inútil intento de intentar crear mi primer activador en 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
Bienvenido a StackOverflow. Gracias por publicar estructuras de tablas, datos, resultados esperados y su intento hasta el momento. Muestra esfuerzo y hace que la comunidad lo ayude mucho más fácilmente. +1 –