Триггер ВМЕСТО ОБНОВЛЕНИЯ — возможно ли это?

Я вношу некоторые изменения в унаследованное приложение, построенное на SQL Server 2000, разумеется, я хочу сделать только абсолютный минимум, опасаясь, что оно может просто развалиться.

У меня есть большая таблица пользователей, tbUsers, с флагом BIT для IsDeleted. Я хочу заархивировать все текущие и будущие записи пользователей IsDeleted = 1 в мою архивную таблицу tbDeletedUsers.

Переместить удаленных в настоящее время пользователей несложно, однако мне нужен способ перемещения любых будущих пользователей, для которых установлен флаг IsDeleted. Я мог бы использовать стандартный триггер AFTER для столбца, однако я планирую добавить некоторые ограничения в таблицу tbUser, которые нарушили бы это. Я бы хотел, чтобы мой триггер INSTEAD OF UPDATE срабатывал и вместо этого перемещал запись в архивную таблицу?

Полагаю, у меня вопрос... возможно ли запустить триггер INSTEAD OF UPDATE при обновлении отдельного столбца? Вот что у меня есть на данный момент:

 CREATE TRIGGER trg_ArchiveUsers
 INSTEAD OF UPDATE ON tbUsers
 AS 
    BEGIN
      ...
    END
 GO

Если да, то пример (совместимый с SQL 2000) был бы очень признателен!

13
задан bigtv 24 March 2012 в 14:26
поделиться