SQL Server не имеет понятия BEFORE INSERT
или BEFORE DELETE
.Подобные операции аудита действительно не нужно выполнять перед действием, большую часть времени - поэтому просто используйте триггеры AFTER INSERT
и AFTER UPDATE
, которые у вас уже есть.
с помощьюУдаленная таблица работает, поскольку она дает мне данные, которые будут обновлены.вставленная таблица предоставляет новые значения ... а не те, которые я хочу регистрировать.
Когда вы выполняете триггер AFTER UPDATE
, псевдотаблица Inserted
содержит новые значения - иDeleted
таблица содержит старые значения.Таким образом, для триггера AFTER UPDATE
вы можете получить доступ к обеим псевдостолам и получить как старые, так и новые значения.
Триггер AFTER INSERT
имеет доступ только к псевдотаблице Inserted
, которая содержит значения, которые быливставлен.
Триггер AFTER DELETE
имеет доступ только к псевдотаблице Deleted
, которая содержит значения удаленных строк.