Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / помогите с триггером / 3 сообщений из 3, страница 1 из 1
21.04.2001, 12:31
    #32004616
AndyG
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите с триггером
нужен триггер, который срабатывает при попытке добавления записи, нарушающей условия по ключам.
в таблице находит запись, которая является дублирующей по ключевым полям и меняет значение одного из полей на сумму
того чего в ней было плюс значение этого поля во вставляемой, после чего откатывает попытку вставки. Всем огромное спасибо за помощь
...
Рейтинг: 0 / 0
21.04.2001, 15:32
    #32004618
GreenSunrise
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите с триггером
В триггере это сделать не получится. Когда управление приходит в триггер, то начинается неявная транзакция и все, что будет происходить во время нее (изменения в этой ли таблице или в любой другой), откатится в случае rollback.
...
Рейтинг: 0 / 0
23.04.2001, 10:54
    #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
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / помогите с триггером / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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