Это то, что у меня есть. Это похоже на пример MS, и я не могу понять, почему он не работает. Я получаю сообщение об ошибке «PlanID» в столбце Invaild в этой строке:
WHERE gm.PlanId = i.[PlandID]
У меня сложилось впечатление, что INSERTED будет содержать те же поля, что и таблица плана. Может быть, я далеко - это мой первый триггер!
PlanID является первичным ключом в таблице плана и внешним ключом для показателей. Я просто хочу проверить, когда обновляется строка в поле «Статус» плана, а затем обновить поле «Состояние» в «Показателях».
CREATE TRIGGER utr_Plan_Cascade_Status
ON [dbo].[Plan]
for UPDATE
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
IF(UPDATE([Status]))
BEGIN
UPDATE dbo.Measures
SET [Status]= i.[Status]
FROM dbo.Measures m, INSERTED i, DELETED d
WHERE m.PlanId = i.[PlandID]
END
END
Любая помощь будет оценена.