Проблемы с триггером каскадного удаления
От: spy__  
Дата: 12.12.11 13:23
Оценка:
Добрый день.

У меня есть MS SQL 2008 и табличка такого плана:

create table Table4
(
id integer not null identity(1, 1) constraint PK_Table4_1 primary key,
x integer constraint FK_Table4_2 references Table4(id) on delete no action on update no action
);


Данные в ней, скажем, такие:

id | x
2 | null
3 | 2
4 | 2
5 | 2


Под все это дело я хочу организовать триггер для удаления записей. На данный момент родил такую штуку:

create trigger casc_table4_1 on Table4 instead of delete as
begin
delete from Table4 WHERE x in (select id from deleted)
end;


Проблема в том, что если выполнить запрос
delete from Table4 where id = 2;

то удалится все, кроме строки 2 | null. А ведь изначально цель удалить именно ее + всех, кто из этой таблицы на нее ссылается. В чем может быть косяк?
cascade delete trigger
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.