У меня есть триггер в TSQL, который я хотел бы сделать две вещи:
- Если столбец «Заблокирован» имеет значение ИСТИНА, он должен выполнять ROLLBACK TRANSACTION
При этом он должен завершиться изящно.
AFTER UPDATE
AS
BEGIN
IF (SELECT COUNT(*) FROM deleted WHERE Locked = 1)>0
ROLLBACK TRANSACTION
END
В настоящее время код откатывает нежелательные транзакции, но когда он это делает, он возвращает эту ошибку: «Транзакция завершилась в триггере. Пакет был прерван».
Есть ли способ выполнить ROLLBACK TRANSACTION в триггере и завершиться неудачно?
Спасибо.