Обновление триггера столбца в SQL Server - идентификатор ошибки из нескольких частей не может быть привязан - PullRequest
0 голосов
/ 05 ноября 2010

Я пытаюсь найти правильный синтаксис для создания простого триггера обновления.

Я последовательно получаю сообщение об ошибке

Идентификатор из нескольких частей "AD.AgencyId" могне быть связанным.

Вот триггер, столбец [FullName] в AgencyDivision должен содержать также имя его родителя (агентства) [Agency] .Name.

CREATE TRIGGER [dbo].[trUpdateAgencyDivisionFullName] 
ON [dbo].[AgencyDivision] FOR UPDATE, INSERT
AS

BEGIN
    UPDATE AD
    SET AD.FullName = A.Name + ' , ' + AD.DivisionName
    FROM AgencyDivision as AD, inserted AS i
    JOIN Agency AS A
    ON AD.AgencyId = A.Id
    WHERE i.Id = AD.Id
END

Есть ли какие-либо синтаксические изменения, которые я могу сделать, чтобы решить эту проблему?Может ли эта структура JOIN работать в триггерах?Спасибо.

1 Ответ

1 голос
/ 05 ноября 2010

Это звучит слишком очевидно, но можете ли вы дважды проверить, что в таблице AgencyDivision есть AgentId?

Кроме того, просто с точки зрения чистого синтаксиса я бы изменил его на:

UPDATE AD 
SET AD.FullName = A.Name + ' , ' + AD.DivisionName 
FROM AgencyDivision as AD
INNER JOIN inserted AS i ON i.Id = AD.Id 
INNER JOIN Agency AS A ON AD.AgencyId = A.Id 

В вашей версии вы смешиваете ANSI и тета-синтаксис для своих объединений.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...