我正在尝试使用TRIGGER进行更新。
我有2个数据库(eBob和Sbmx_taslado),在这些数据库中共享信息,材料和密度。
我想要做的是,当您更改材料的密度(数据库Sbmx_traslado)时,会更新(eBob数据库)。
问题是表格被更新,其中材料可以在不同的容器中重复相同,这给我发出以下错误:
(请原谅我的英文,请使用谷歌)
Use Sbmx_traslado
GO
CREATE TRIGGER DensidadMaterial2
ON [Sbmx_traslado].[dbo].[Sbmx_Contenedores]
AFTER UPDATE
AS
UPDATE [eBob].[dbo].[tblVessel]
SET [eBob].[dbo].[tblVessel].[ProductDensityWeight] = [Sbmx_traslado].[dbo].[Sbmx_Contenedores].[Densidad]
FROM [Sbmx_traslado].[dbo].[Sbmx_Contenedores]
WHERE [eBob].[dbo].[tblVessel].[Contents] = [Sbmx_traslado].[dbo].[Sbmx_Contenedores].[Ingrediente]
答案 0 :(得分:1)
您正在引用WHERE子句中不在FROM中的表。试试这个。
Use Sbmx_traslado
GO
CREATE TRIGGER DensidadMaterial2
ON [Sbmx_traslado].[dbo].[Sbmx_Contenedores]
AFTER UPDATE
AS
UPDATE [eBob].[dbo].[tblVessel]
SET [eBob].[dbo].[tblVessel].[ProductDensityWeight] = [Sbmx_traslado].[dbo].[Sbmx_Contenedores].[Densidad]
FROM [eBob].[dbo].[tblVessel]
JOIN [Sbmx_traslado].[dbo].[Sbmx_Contenedores] ON [eBob].[dbo].[tblVessel].[Contents] = [Sbmx_traslado].[dbo].[Sbmx_Contenedores].[Ingrediente]