2016-04-14 4 views
0

Я пытаюсь сделать ОБНОВЛЕНИЕ, используя TRIGGER.Ошибка триггера. Идентификатор с несколькими частями «...» не может быть связан

У меня есть 2 базы данных (eBob и Sbmx_taslado), в которых они обмениваются информацией, материалами и плотностью.

Что я пытаюсь сделать, так это то, что при изменении плотности материала (базы данных Sbmx_traslado) это обновление (база данных eBob).

Проблема заключается в том, что таблица обновляется, где материал можно повторить то же самое в другой контейнер, который посылает мне следующую ошибку:

(простите мой английский, используйте Google)

enter image description here

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

Это старт: Эта ошибка означает, что вы используете псевдоним в своем заявлении, которое не было объявлено. – logixologist

+1

Не размещайте скриншоты из текста. Запишите ошибку (по-английски) в тексте. – Blorgbeard

+0

как 2 таблицы подключены прямо сейчас. – logixologist

ответ

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] 
+0

У меня такая же проблема: обновленные значения изменяют несколько строк –