Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности

Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
08.05.2001, 14:53
|
|||
|---|---|---|---|
|
|||
Какой триггер сработает? |
|||
|
#18+
Ситуация: для таблицы определены два триггера на встаку записи. Вопрос: в какой последовательности будут срабатывать тригеры и будет ли выполнен откат первого триггера, если не выполнился второй? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
08.05.2001, 14:58
|
|||
|---|---|---|---|
|
|||
Какой триггер сработает? |
|||
|
#18+
По поводу последовательности срабатывания триггеров BOL говорит, что нельзя гарантировать порядок их работы и закладываться на это нельзя. Откат первого триггера в случае rollback во втором произойдет _обязательно_ , поскольку вся операция выполняется в единой транзакции. Реально хочу сказать, что порядок срабатывания у меня всегда совпадал с порядком их создания, но брать это как гарантию все же не стоит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
08.05.2001, 19:07
|
|||
|---|---|---|---|
Какой триггер сработает? |
|||
|
#18+
Хочу дополнить ответ. В версии 2000 можно указать, какой из триггеров должен выполняться первым, а какой последним. Если триггеров более двух, то для всех остальных порядок выполнения теоретически не является определенным. Для версии 7.0 нельзя стопроцентно гарантировать последовательность выполнения триггеров. Есть подозрение, что после модификации какого-нибудь из них порядок может измениться. Вообще, множественность однотипных триггеров допускается только в тех случаях, когда порядок их выполнения не имеет значения. А вот ежели он имеет значение, то желательно объединить скрипт нескольких триггеров в одном триггере. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
08.05.2001, 19:21
|
|||
|---|---|---|---|
|
|||
Какой триггер сработает? |
|||
|
#18+
Сорри может вопрос не по теме, но зачем писать, триггеров ( на вставку например), больше чем один ?? По идее каждый вызов триггера замедляет процесс вставки, потом вносится путаница что и за чем выполняется ну и т.д. Или же всетаки есть задачи в которых не обоитись одним триггером ( на вставку например). Спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
08.05.2001, 22:49
|
|||
|---|---|---|---|
|
|||
Какой триггер сработает? |
|||
|
#18+
Разнесение бизнес-логики по разным триггерам оправдано в случае, если эти куски относятся к разной бизнес-логике. Чаще всего они при этом никак не связаны последовательностью выполнения. Чтобы принудительно заставить триггер срабатывать первым или последним, используйте sp_settriggerorder. Промежуточные триггеры будут выполняться в порядке создания. Однако, как справедливо заметил Garya, этот порядок нарушится, стоит Вам употребить ALTER TRIGGER. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
10.05.2001, 09:22
|
|||
|---|---|---|---|
|
|||
Какой триггер сработает? |
|||
|
#18+
Совершенно верно. Реальный пример для update - один триггер не позволяет изменять predefined объекты (имеющие флажок Predefined = 1), а второй ведет лог изменений (например, какой юзер выполнял операцию). В общем-то все логично - если действия должны выполняться в определенной последовательности, то они связаны и должны быть помещены в один триггер. А если они независимы, то порядок выполнения не должен иметь значения и их можно разнести по разным триггерам. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
10.05.2001, 12:09
|
|||
|---|---|---|---|
Какой триггер сработает? |
|||
|
#18+
Лично я использую несколько однотипных триггеров ТОЛЬКО в следующей ситуации: 1. Если последовательность их запуска значения не имеет. 2. Если необходимо включить один скрипт на совокупность нескольких событий (например, for Insert, Update, Delete), а другой скрипт только на одно из них (нарпимер, for Delete). В общем-то, дело вкуса... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=46&tablet=1&tid=1826826]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
30ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
40ms |
get tp. blocked users: |
1ms |
| others: | 263ms |
| total: | 378ms |

| 0 / 0 |
