Problema con Disparador (Trigger) SQL Server

Estoy tratando de actualizar unos datos entre 2 tablas de distintas bases de datos.

Estoy utilizando disparadores pero al querer actualizar varios datos con el mismo nombre como identificador me da un error.

una base de datos es [eBob] y otra es [Sbmx_traslado]

UPDATE [eBob].[dbo].[tblVessel]
SET [eBob[db].o].[tblVessel].[ProductDensityWeight] = [Sbmx_traslado].[dbo].[Sbmx_Contenedores].[Densidad]
FROM [Sbmx_traslado].[dbo].[Sbmx_Contenedores]
WHERE [eBob].[dbo].[tblVessel].[Contents] = [Sbmx_taslado].[dbo].[Sbmx_Contenedores].[Ingrediente]

Como ven lo que quiero es que cuando cambien la densidad de un material en la base de datos también lo cambie en los materiales con el mismo nombre.

Les agradezco cual quier ayuda que me puedan brindar para resolver mi problemas.

1 respuesta

Respuesta
1

A la comunidad.

Agrego la solución que pude resolver el problema que tenia.

Use Sbmx_traslado
GO
CREATE TRIGGER CambioMaterial
ON [Sbmx_traslado].[dbo].[Sbmx_Contenedores]
AFTER UPDATE
AS
declare @densidad decimal(18, 2), @material varchar(100)
UPDATE [eBob].[dbo].[tblVessel]
SET @material=inserted.[Material]
FROM inserted

declare crs CURSOR FORWARD_ONLY FOR
select [Densidad] from [Sbmx_traslado].[dbo].[Sbmx_Ingredientes] where [Sbmx_traslado].[dbo].[Sbmx_Ingredientes].[Descripcion]=@material
OPEN crs
FETCH NEXT FROM CRS INTO @densidad
CLOSE crs
DEALLOCATE crs
UPDATE [eBob].[dbo].[tblVessel]
SET [eBob].[dbo].[tblVessel].[Contents] = Inserted.[Material],
[eBob].[dbo].[tblVessel].[ProductDensityWeight] = @densidad
FROM Inserted
WHERE [eBob].[dbo].[tblVessel].[VesselName] = Inserted.[Id]

GO

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas