powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / помогите с триггером
3 сообщений из 3, страница 1 из 1
помогите с триггером
    #32004616
AndyG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
нужен триггер, который срабатывает при попытке добавления записи, нарушающей условия по ключам.
в таблице находит запись, которая является дублирующей по ключевым полям и меняет значение одного из полей на сумму
того чего в ней было плюс значение этого поля во вставляемой, после чего откатывает попытку вставки. Всем огромное спасибо за помощь
...
Рейтинг: 0 / 0
помогите с триггером
    #32004618
GreenSunrise
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В триггере это сделать не получится. Когда управление приходит в триггер, то начинается неявная транзакция и все, что будет происходить во время нее (изменения в этой ли таблице или в любой другой), откатится в случае rollback.
...
Рейтинг: 0 / 0
помогите с триггером
    #32004649
Фотография Garya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хочу уточнить. Эта проблема по-разному решается в версиях 7.0 и 2000. В версии 7.0 DRI нужно либо вообще не пользоваться, либо нарисовать только Foreign Keys со сброшенными флажком Enforce relationship for insert and update (тогда на диаграмме вместо сплошной линии возникает пунктирная). Проблема в том, что в тот момент, когда запускается триггер в 7.0 DRI уже отработали и все операции уже произошли, хотя их еще можно откатить. Поэтому при нарушении DRI триггер даже не запуститься - вы получите ошибку нарушения DRI. Сбросив указанный флажок, вы тем самым разрешаете нарушать DRI. А в триггере должны предусмотреть скрипт, который ВМЕСТО DRI будет отслеживать декларативную ссылочную целостность и может включать дополнительную обработку, наподобие той, которую вы хотите получить.
В версии 2000 имеются instead-триггеры (вместо-триггеры), которые отрабатывают ДО DRI. Поэтому, в данной версии можно поместить нужную вам обработку именно в instead-триггер.
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / помогите с триггером
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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