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

Откуда:
Сообщений: 159
Здравствуйте,

Есть две таблицы с триггерами on update. Задача триггера таблицы1 приводить таблицу2 в соответствие с таблицей1. Задача триггера таблицы2 проверять данные таблицы2 на соответсвие таблице1.

Проблема: когда срабатывает триггер таблицы1 и делает изменения в таблице2 триггер таблицы2 не дает этого сделать т.к. , естественно, еще "не видит" новых данных в таблице1.

Нутром чувствую, что должно быть какое-то "правильное" решение.

Подскажите, пожалйста, что с эти сделать.

Спасибо
9 июл 03, 08:46    [255240]     Ответить | Цитировать Сообщить модератору
 Re: Триггеры и еще не вставленные новые данные  [new]
Белов Владимир
Member

Откуда: Москва
Сообщений: 1716
Попробовать использовать селект с подсказкой nolock
select * from table1 (nolock) where...
9 июл 03, 08:52    [255250]     Ответить | Цитировать Сообщить модератору
 Re: Триггеры и еще не вставленные новые данные  [new]
alex-ikar
Member

Откуда: Москва
Сообщений: 192
2 Andrey Mamitko

Вооьще-то у меня такая же ситуация (тьфу-тьфу-тьфу) отрабатывает нормально. Ведь триггеры являются AFTER-update и Триггер таблицы2 на момент запуска уже должен видеть произошедшие изменения в таблице1.

Может быть дело в другом?
Например:В настройках БД:
1)SQL Server also allows recursive invocation of triggers when the recursive triggers setting is enabled in sp_dboption.
2)To disable indirect recursion as well, set the nested triggers server option to 0 using sp_configure.
9 июл 03, 09:28    [255284]     Ответить | Цитировать Сообщить модератору
 Re: Триггеры и еще не вставленные новые данные  [new]
Белов Владимир
Member

Откуда: Москва
Сообщений: 1716
>alex-ikar
Насколько я понимаю, хоть триггер и AFTER UPDATE - все равно транзакция ещё не завершилась и, соответственно, надо читать "грязные" данные
9 июл 03, 09:37    [255291]     Ответить | Цитировать Сообщить модератору
 Re: Триггеры и еще не вставленные новые данные  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74925
2 Белов Владимир

А разве весь процесс отработки триггеров идет не в рамках одной транзакции? Так-что, IMHO, все должно работать.
9 июл 03, 09:47    [255304]     Ответить | Цитировать Сообщить модератору
 Re: Триггеры и еще не вставленные новые данные  [new]
SergSuper
Member

Откуда: SPb
Сообщений: 5488
2 Белов Владимир
неправильно понимаете
Вы же находитесь в той же транзакции
9 июл 03, 09:48    [255308]     Ответить | Цитировать Сообщить модератору
 Re: Триггеры и еще не вставленные новые данные  [new]
Белов Владимир
Member

Откуда: Москва
Сообщений: 1716
2 SergSuper
упс.
действительно упустил сий момент, что вложенный триггер.
9 июл 03, 10:05    [255340]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить