Аналогично ответу Dalex:
Другое решение заключается в добавлении столбца, например Triggered
.И используйте что-то подобное в своем триггере.
IF NOT UPDATE(Triggered)
BEGIN
RETURN;
END
UPDATE()
просто проверяет, был ли столбец включен в триггер, а не проверяло, действительно ли значение было изменено.Если каждый запрос, который вы хотите запустить, имеет Triggered = 1
, он сработает.Запросы, у которых этого нет, не будут запускать триггер.
Вы можете использовать столбец nvarchar и использовать поле причины как флаг и как объяснение.1014 *
IF NOT UPDATE(Reason)
BEGIN
RETURN;
END
Если вы обновите поле lastLogin при входе в систему, вы можете исключить причину, поскольку триггер не сработает.
UPDATE Users
SET LastLogin = getDate()
WHERE UserID = ...