SQL триггерный - PullRequest
       16

SQL триггерный

1 голос
/ 11 октября 2010

Можно ли создать конкретный триггер по ячейкам?

Или есть

IF UPDATE(COLUMN) WHERE OTHER_COLUMN LIKE 'JT'

эквивалентный подарок в SQL Server 2008?

РЕДАКТИРОВАТЬ после получения 2-го ответа ---

IF not UPDATE(CurrentNo) --// Wanted to do like this : where series ='JT'
    return

IF not EXISTS(SELECT 'True'
              FROM Inserted i
              JOIN Deleted d ON i.Series = d.Series
              WHERE i.Series = 'JT' AND d.Series = 'JT')
    return

Кажется, хорошо, верно! Пожалуйста, прокомментируйте.

Ответы [ 2 ]

1 голос
/ 11 октября 2010

Нет. Нет способа сделать это декларативно. Вам нужно было бы создать общий триггер Update и поместить в него логику, чтобы он немедленно возвращался IF NOT UPDATE (column)

Если бы интересующий столбец был обновлен , то вы бы запросили псевдотаблицы inserted и deleted, чтобы позволить вам обрабатывать строки, в которых выполнялось ваше условие интереса.

0 голосов
/ 11 октября 2010

Тигры указаны в таблицах, а не в строках, столбцах или ячейках. Внутри тела триггера вы будете иметь доступ к таблицам INSERTED и DELETED. Вы можете объединить их вместе, чтобы определить, какие столбцы были изменены во время обновления. Функция UPDATE () , доступная в SQL Server 2008 (а также в предыдущих версиях), является сокращенным методом для определения того, изменился ли столбец.

...