2


1

Можно ли выяснить, было ли обновлено определенное поле в Sql Server Trigger?

Если у меня есть простой стол, и я хочу что-то сделать (скажем .. выполнить хранимую процедуру), когда столбец (и я знаю столбец, который я хочу искать) изменился.

Это возможно?

Версия: SQL Server 2008 R2.

Пример таблицы: -

ID INTEGER PRIMARY KEY
Name NVARCHAR(100) NOT NULL
Age TINYINT NOT NULL
HairColour TINYINT NOT NULL

Так .. если содержимое поля Name изменится, я выполню хранимую процедуру 'Foo'.

Есть идеи?

1 Answer


4


Use:

CREATE TRIGGER trig_updateName ON YOUR_TABLE

FOR UPDATE AS

  IF NOT UPDATE(Name)
  BEGIN

     RETURN

  END

  EXEC foo

Этот триггер будет автоматически выполняться всякий раз, когда мы обновляем одну / несколько записей в YOUR_TABLE. Функция «UPDATE» используется для проверки того, было ли обновлено поле «Name» с помощью запроса «UPDATE», который выполнил триггер «trig_updateAuthor». Если поле не имеет, то триггер возвращает управление серверу SQL.