powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Как-то неожиданно работают триггеры
8 сообщений из 8, страница 1 из 1
Как-то неожиданно работают триггеры
    #32026342
Vit.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть таблицы А,В,С. Для таблицы А есть триггер на update, который выполняет
update ну к примеру 5-ти строк таблицы В. Для таблицы В также есть триггер на update,
который выполняет обновление только 1 строки таблицы С.
Я ожидаю ,что при update каждой строки в таблице В, триггер сработает столько раз,
сколько строк в таблице В (в нашем случае 5) обновлено.Реально вижу , что update-триггер таблицы В сработал только при обновлении последней (5-ой) строки.Почему?
Опция разрешения вложенных триггеров включена.

ЗЫ: MSSQL 7.0 без сервис-паков
...
Рейтинг: 0 / 0
Как-то неожиданно работают триггеры
    #32026345
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Триггеры срабатывают на событие, т.е. команду, независимо от того, сколько записей в действительности будет обработано командой.
Т.е. при обновлении одной командой 5-записей из таблицы В триггер сработает 1 раз, но его таблицы inserted и deleted будут содержать по 5 записей.

IMHO ваш триггер на UPDATE для таблицы В не проверяет количество действительно обработанных записей
...
Рейтинг: 0 / 0
Как-то неожиданно работают триггеры
    #32026352
sysop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И это правильно. Но в триггере можно самостоятельно организовать 'построчную' обработку, если это действительно нужно.
...
Рейтинг: 0 / 0
Как-то неожиданно работают триггеры
    #32026354
Фотография Deosfen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Триггер срабатывает один раз, но не нужно делать построчную обработку, то что написано в триггере будет выполняться столько раз сколько кол-во строк в таблице inserted. Может я не прав?
...
Рейтинг: 0 / 0
Как-то неожиданно работают триггеры
    #32026360
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2deosfen
Нет не правы - тело триггера выполнится тоже один раз
...
Рейтинг: 0 / 0
Как-то неожиданно работают триггеры
    #32026361
GreenSunrise
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не прав. Напиши простенький такой триггер с телом print 'my trigger'и привесь его на таблицу. Выполнится один раз, независимо от количества строк в inserted. Даже если ноль
А будет обработка построчная или всей таблицы inserted - дело ваше, как напишете...
...
Рейтинг: 0 / 0
Как-то неожиданно работают триггеры
    #32026440
Фотография Deosfen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Приветствую всех, в таблицу добавляю несколько записей, n-запись не удолетворяет каким-то условиям, то все записи не записываются. Или что-то не так?
...
Рейтинг: 0 / 0
Как-то неожиданно работают триггеры
    #32026460
GreenSunrise
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если добавление нескольких записей происходит в одной транзакции и одна из них не удовлетворяет условиям, то, естественно, не запишутся все.

Запись вида insert into t1 (col1, col2) select col1, col2 from t2
вызывает открытие неявной транзакции. Поэтому все записи будут откачены. Это правильное поведение.
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Как-то неожиданно работают триггеры
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]