Re[2]: Проблемы с триггером каскадного удаления
От: spy__  
Дата: 12.12.11 13:46
Оценка:
Здравствуйте, Sshur, Вы писали:

S>Здравствуйте, spy__, Вы писали:


__>>Проблема в том, что если выполнить запрос

__>>
__>>delete from Table4 where id = 2;
__>>

__>>то удалится все, кроме строки 2 | null. А ведь изначально цель удалить именно ее + всех, кто из этой таблицы на нее ссылается. В чем может быть косяк?

S>Ну дык триггер то istead of. Данные, которые в deleted из таблицы не удаляются. Делайте триггер after или удаляйте руками.


1. for/after я уже пробовал. При выполнении запроса на удаление:

Сообщение 547, уровень 16, состояние 0, строка 1
Конфликт инструкции DELETE с ограничением SAME TABLE REFERENCE "FK_TABLE4_2". Конфликт произошел в базе данных "TEST1", таблица "dbo.Table4", column 'x'.
Выполнение данной инструкции было прервано.

Это подкидывает свинью наличие FK.

2. "Удаляйте руками". Можно конкретный пример? Т.к. у меня само создание триггера ругается на то, что не удается обновить deleted и inserted (это когда пробую выполнить больше одного запроса в триггере).
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.