волшебные таблицы триггеров в sql server - PullRequest
1 голос
/ 15 марта 2011

магические таблицы триггера опустошаются сами или должны быть очищены явно?Когда мы вставляем данные в таблицу с триггером, сначала данные отправляются во вставленную волшебную таблицу, а затем в фактическую таблицу.но после этого вставленная волшебная таблица сохраняет свои данные или теряет их?

Ответы [ 3 ]

5 голосов
/ 15 марта 2011

С Использование вставленных и удаленных таблиц

SQL Server автоматически создает и управляет этими таблицами.

2 голосов
/ 15 марта 2011

Полагаю, вы говорите о INSERTED, DELETED записях, которые существуют в контексте триггера? Почему вы предполагаете, что они не являются временными, поскольку к ним нельзя получить доступ за пределами области действия триггера.

0 голосов
/ 16 марта 2011

Я нашел ответ в книге как:

Как только триггер завершен, данные для этой таблицы удаляются из соответствующих логических таблиц.

Логические таблицы хранятся во временной базе данных TEMPDB, и, следовательно, триггеры влияют на производительность базы данных tempdb и будут затронуты любым другим процессом, использующим базу данных tempdb.

Невозможно завершить какую-либо дальнейшую обработку этих логических таблиц, таких как «Создание» и «INDEX», поскольку они хранятся в хранилище версий , а данные могут быть запрошены только с помощью инструкции SELECT и не могут быть изменены. ,

Мы можем получить доступ к этим таблицам только через триггер, чтобы выяснить, какие записи были добавлены, обновлены или удалены.

...