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

Откуда:
Сообщений: 405
Привет! Расскажите пож механизм работы триггера Instead of, только по простому, чтобы было понятно) А то никак въехать не могу! Интересуют вот такие вопросы:
1.Триггеры работают с таблицами inserted и deleted, вставка/обновление/удаление работает построчно, то есть все данные вносятся в соответствующие таблицы и от туда построчно вынимаются?
29 ноя 13, 12:56    [15211443]     Ответить | Цитировать Сообщить модератору
 Re: Триггеры Instead of  [new]
Glory
Member

Откуда:
Сообщений: 104760
Триггеры рвботают так, как вы их напишите. Напишите построчно - будут работать построчо, напишите с набором - будут работать с набором
29 ноя 13, 12:58    [15211464]     Ответить | Цитировать Сообщить модератору
 Re: Триггеры Instead of  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6723
temoxa
... и от туда построчно вынимаются?
Ага, таблицы, это такой сферический конь в вакууме и работает на магии.
В таблицах данные не хранятся, они хранятся на диске/памяти, в первую очередь в логах и дополнительных структурах описанных по индексам (очень редко в куче) ...

INSTEAD OF - переводится как "вместо".
В отличие от триггеров AFTER (после), в "таблицах" inserted/deleted хранятся данные которые были псевдо изменены, реальные данные таблицы не были изменены. Поэтому могут вешаться и на представления.

Все триггера, включая эти, запускаются после окончания выполнения запроса.

Навешивание такого триггера естественно изменяет планы запросов, ибо исключает из него изменение таблицы.
Но это зависит от места вызова.
Если запустить изменение таблицы в самом триггере (на которую он навешан) - то он уже повторно не запускается (не зацикливается), и уже явно изменяет таблицу.

Такие триггера вещь редкая, нужно для энтерпрайза, для обхода "особенностей". Или для нетривиальных решений или особых подходов в построении системы.
Имеет много побочных (часто негативных) явлений и требований.

Вот пример когда данные никуда в итоге не попадают.
29 ноя 13, 23:41    [15215886]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить