Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Как-то неожиданно работают триггеры
|
|||
|---|---|---|---|
|
#18+
Есть таблицы А,В,С. Для таблицы А есть триггер на update, который выполняет update ну к примеру 5-ти строк таблицы В. Для таблицы В также есть триггер на update, который выполняет обновление только 1 строки таблицы С. Я ожидаю ,что при update каждой строки в таблице В, триггер сработает столько раз, сколько строк в таблице В (в нашем случае 5) обновлено.Реально вижу , что update-триггер таблицы В сработал только при обновлении последней (5-ой) строки.Почему? Опция разрешения вложенных триггеров включена. ЗЫ: MSSQL 7.0 без сервис-паков ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2002, 16:06 |
|
||
|
Как-то неожиданно работают триггеры
|
|||
|---|---|---|---|
|
#18+
Триггеры срабатывают на событие, т.е. команду, независимо от того, сколько записей в действительности будет обработано командой. Т.е. при обновлении одной командой 5-записей из таблицы В триггер сработает 1 раз, но его таблицы inserted и deleted будут содержать по 5 записей. IMHO ваш триггер на UPDATE для таблицы В не проверяет количество действительно обработанных записей ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2002, 16:32 |
|
||
|
Как-то неожиданно работают триггеры
|
|||
|---|---|---|---|
|
#18+
И это правильно. Но в триггере можно самостоятельно организовать 'построчную' обработку, если это действительно нужно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2002, 17:48 |
|
||
|
Как-то неожиданно работают триггеры
|
|||
|---|---|---|---|
|
#18+
Триггер срабатывает один раз, но не нужно делать построчную обработку, то что написано в триггере будет выполняться столько раз сколько кол-во строк в таблице inserted. Может я не прав? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2002, 22:26 |
|
||
|
Как-то неожиданно работают триггеры
|
|||
|---|---|---|---|
|
#18+
2deosfen Нет не правы - тело триггера выполнится тоже один раз ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2002, 06:37 |
|
||
|
Как-то неожиданно работают триггеры
|
|||
|---|---|---|---|
|
#18+
Не прав. Напиши простенький такой триггер с телом print 'my trigger'и привесь его на таблицу. Выполнится один раз, независимо от количества строк в inserted. Даже если ноль А будет обработка построчная или всей таблицы inserted - дело ваше, как напишете... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2002, 06:39 |
|
||
|
Как-то неожиданно работают триггеры
|
|||
|---|---|---|---|
|
#18+
Приветствую всех, в таблицу добавляю несколько записей, n-запись не удолетворяет каким-то условиям, то все записи не записываются. Или что-то не так? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2002, 22:55 |
|
||
|
Как-то неожиданно работают триггеры
|
|||
|---|---|---|---|
|
#18+
Если добавление нескольких записей происходит в одной транзакции и одна из них не удовлетворяет условиям, то, естественно, не запишутся все. Запись вида insert into t1 (col1, col2) select col1, col2 from t2 вызывает открытие неявной транзакции. Поэтому все записи будут откачены. Это правильное поведение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2002, 07:13 |
|
||
|
|

start [/forum/topic.php?fid=46&msg=32026361&tid=1823322]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
133ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
66ms |
get tp. blocked users: |
2ms |
| others: | 231ms |
| total: | 477ms |

| 0 / 0 |
