SQL Cell Wise Triger
-
29-09-2019 - |
Вопрос
Может ли создавать определенный мудрый спусковой клетки?
Или есть
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
Кажется, в порядке прав! Прокомментируйте, пожалуйста.
Решение
Нет. Нет никакого способа сделать это декларативно. Вам нужно будет создать общий запрос на триггер и поставить логику в нем, чтобы немедленно вернуться IF NOT UPDATE (column)
Если столбец интереса был обновлен, тогда вы получите запрос inserted
и deleted
Pseudo Tables, чтобы позволить вам обработать строки, где было выполнено ваше состояние интереса.
Другие советы
Тиггеры указываются на таблицах, а не на рядах, колоннах или клетках. Внутри корпуса триггера у вас будет доступ к вставленным и удаленным таблицам. Вы можете присоединиться к ним вместе, чтобы определить, какие столбцы были изменены во время обновления. То ОБНОВИТЬ() Функция, которая доступен в SQL Server 2008 (а также предыдущих версиях), является методом сокращения для определения того, изменился ли столбец.