Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Что лежит в таблице триггер After Update  [new]
Sandist
Member

Откуда:
Сообщений: 401
Здравствуйте! подскажите плиз
Есть триггер на AFTER UPDATE на таблицу A
при изменении появляется значение в поле UF
я запускаю процедуру, которая смотрит в таблице A значение и перекидывает его в др таблицу
т.е. Можно было использовать таблицу Inserted и это значение перекидывать в новую таблицу, но так не получается
Вопрос вот в чем заключается, при триггере AFTER UPDATE значение уже лежит в таблице или еще нет?

Если нет, то как можно запустить код так, чтобы ХП срабатывала уже после того как значения упали в таблицу?
22 окт 17, 19:46    [20890231]     Ответить | Цитировать Сообщить модератору
 Re: Что лежит в таблице триггер After Update  [new]
Дедушка
Member

Откуда: Город трёх революций
Сообщений: 5111
триггер выполняется в контексте транзакции кода вызвавшего его срабатывание
по дефолту инструкции начинают неявную транзакцию которая завершается после окончания инструкции
т.е.

update (тут открывается неявная транзакция)
данные изменились в таблице (но не закоммичены)
срабатывание триггера
(т.к. триггер в той же транзакции он видит незакоммиченные данные апдейта)
фиксация неявной транзакции (после этого коммита данные видны другим инструкциям если не включён read uncommitted)
22 окт 17, 21:09    [20890385]     Ответить | Цитировать Сообщить модератору
 Re: Что лежит в таблице триггер After Update  [new]
aleks222
Guest
Sandist
Здравствуйте! подскажите плиз
Есть триггер на AFTER UPDATE на таблицу A
при изменении появляется значение в поле UF
я запускаю процедуру, которая смотрит в таблице A значение и перекидывает его в др таблицу
т.е. Можно было использовать таблицу Inserted и это значение перекидывать в новую таблицу, но так не получается
Вопрос вот в чем заключается, при триггере AFTER UPDATE значение уже лежит в таблице или еще нет?

Если нет, то как можно запустить код так, чтобы ХП срабатывала уже после того как значения упали в таблицу?


Ты дедулю не слушай. Старость - не радость.

В момент срабатывания триггера AFTER UPDATE - таблица уже изменена.
Т.е. все значения там есть.
23 окт 17, 05:14    [20890728]     Ответить | Цитировать Сообщить модератору
 Re: Что лежит в таблице триггер After Update  [new]
Дедушка
Member

Откуда: Город трёх революций
Сообщений: 5111
aleks222
В момент срабатывания триггера AFTER UPDATE - таблица уже изменена.
Т.е. все значения там есть.
тут вам наверное стоит уточнить свою мысль... ибо я написал ровно тож самое
Дедушка
update (тут открывается неявная транзакция)
данные изменились в таблице (но не закоммичены)
23 окт 17, 10:55    [20891317]     Ответить | Цитировать Сообщить модератору
 Re: Что лежит в таблице триггер After Update  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7658
Sandist,

код просмотра inserted надо писать в триггере, а не а процедуре.
23 окт 17, 11:04    [20891361]     Ответить | Цитировать Сообщить модератору
 Re: Что лежит в таблице триггер After Update  [new]
Sandist
Member

Откуда:
Сообщений: 401
да, при запуске триггера ufter update данные уже лежать в таблице и на них можно ссылаться. Спасибо большое всем кто отозвался
20 ноя 17, 18:22    [20970059]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить