Это более общий вопрос, но мотивация для этого вопроса была проблемой, с которой я столкнулся при использовании SQL Server.
У меня есть этот триггер, присоединенный к событию Вставка в таблице, которая содержит некоторую логику, которая, как побочный эффект, вызвала бы ошибку, если бы не было вставлено ни одной строки. После дальнейшего расследования я обнаружил, что курок срабатывает, несмотря на то, что не было вставлено ни одной строки.
Язык, используемый в Документах Microsoft по триггерам DML, кажется, противоречит этому поведению:
Триггеры DML - это особый тип хранимых процедур, которые автоматически вступают в силу, когда происходит событие DML, которое влияет на таблицу или представление, определенные в триггере.
Это поведение по умолчанию в СУБД? Есть ли особая причина для запуска триггера, когда строки не затрагиваются?
источник