Если поле сущности было изменено, то поменять значение одного её столбца

Рейтинг: 2Ответов: 1Опубликовано: 28.01.2015

У меня есть сущность "Требования". Если пользователь изменил поле "Описание" в этой сущности, то должно автоматически меняться значение поля "Стабильность"(dropdownlist). То есть если Описание требования пришлось поменять, то оно становится нестабильным. Я написала триггер

CREATE TRIGGER [ChangeStabilityRequirement] ON [dbo].[Requirement] 
AFTER UPDATE 
AS 
BEGIN 
  if update([Definition]) 
    begin 
      update [Requirement] set Stability = 2 
    end 
end

Но проблема в том, что триггер срабатывает при любом изменении записи в таблице. А нужно, чтобы реагировал только на изменение столбца "Definition".

Еще не написала, возможно, это важно: Нужно, чтобы потом была возможность вернуть поле "Стабильность" к значению "Средняя".

Ответы

▲ 3

Ну наверное вот так:

CREATE  TRIGGER MyTrigger
on dbo.[Some] after update
AS
BEGIN 
    IF UPDATE ([First]) 
    BEGIN
        UPDATE [Some]
        SET  Second = 10
    END 
END

Здесь триггер срабатывает только при обновлении столбца First, и не срабатывает при обновлении других столбцов.