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

StackOverflow https://stackoverflow.com/questions/3553236

Вопрос

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

Возможно ли это?

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

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

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

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

Есть какие-нибудь идеи?

Это было полезно?

Решение

Использование:

CREATE TRIGGER trig_updateName ON YOUR_TABLE

FOR UPDATE AS

  IF NOT UPDATE(Name) 
  BEGIN

     RETURN

  END

  EXEC foo

Этот триггер будет автоматически выполняться всякий раз, когда мы обновляем одну / несколько записей в YOUR_TABLE.Функция "ОБНОВИТЬ" используется для проверки того, было ли обновлено поле "Имя" с помощью запроса "ОБНОВИТЬ", который выполнил триггер "trig_updateAuthor".Если поле этого не имеет, то триггер возвращает управление SQL server.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top