Триггер Обновления SQL Server, поля Get прежде и, после того, как обновлено

мне нужен пример Триггера Обновления SQL Server, поля Get прежде и, после того, как обновлено выполнить sql statments в другой таблице

31
задан shmandor 6 June 2010 в 06:29
поделиться

2 ответа

Триггеры SQL Server имеют доступ к 2 «магическим» таблицам, которые содержат по строке для каждой строки, которая была вставлена, обновлена ​​или удалена в операторе, вызвавшем срабатывание триггера.

Чтобы найти все вставленные строки в операторе INSERT:

select * from inserted

Для всех удаленных строк в операторе DELETE:

select * from deleted

Для операторов UPDATE каждая обновленная строка будет присутствовать как во вставленной, так и в удаленной таблицах. Вставленная таблица будет содержать новое значение строки после оператора обновления, а удаленная таблица будет содержать старое значение строки непосредственно перед оператором обновления. Соедините две таблицы, чтобы получить то, что вам нужно:

select i.*, d.*
from inserted i
join deleted d on (i.id = d.id)
83
ответ дан 27 November 2019 в 21:42
поделиться

вы хотите, чтобы специальный триггер удалил и вставил таблицы. Из MSDN:

В триггерах DML вставленные и удаленные таблицы в основном используются для выполнения следующих действий: Расширьте ссылочную целостность между таблицами. Вставка или обновление данных в базовых таблицах, лежащих в основе представления. Проверьте наличие ошибок и примите меры в зависимости от ошибки. Найдите разницу между состоянием таблицы до и после изменения данных и примите меры на основе этой разницы. В удаленной таблице хранятся копии затронутых строк во время операторов DELETE и UPDATE.Во время выполнения оператора DELETE или UPDATE строки удаляются из таблицы триггеров и переносятся в удаленную таблицу. Удаленная таблица и таблица триггеров обычно не имеют общих строк. Вставленная таблица хранит копии затронутых строк во время операторов INSERT и UPDATE. Во время транзакции вставки или обновления новые строки добавляются как во вставленную таблицу, так и в таблицу триггеров. Строки во вставленной таблице являются копиями новых строк в таблице триггеров.

подробнее см. Здесь

1
ответ дан 27 November 2019 в 21:42
поделиться
Другие вопросы по тегам:

Похожие вопросы: