У меня есть два триггера, и я хотел бы знать, является ли результат выполненной работы одинаковой.Различные триггеры той же работы?
CREATE TRIGGER trg_test_upd ON test AFTER UPDATE
AS
RAISERROR('Error', 16, 1);
ROLLBACK;
GO
CREATE TRIGGER trg_test_upd ON test INSTEAD OF UPDATE
AS
RAISERROR('Error', 16, 1);
GO
Второй вопрос, почему вы бы использовать ROLLBACK
если у вас есть INSTEAD OF
?
Реальный вопрос, конечно, должен состоять в том, почему вы предоставили какие-либо разрешения «UPDATE» для этой таблицы в первую очередь, если вы просто собираетесь использовать триггер для предотвращения обновлений? –
Например, вы хотите установить некоторые условия обновления, связанные со значением, которое вы обновляете. –
Если это * условная ошибка/откат, триггеры не совпадают, поскольку триггер 'INSTEAD OF' должен выполнять фактические изменения, если условие ложно. Но если это тот случай, который вы хотите обсудить, триггеры, которые вы указали в своем вопросе, не являются репрезентативными, и как мы это понимаем? –