Добрый день.
У меня есть 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. А ведь изначально цель удалить именно ее + всех, кто из этой таблицы на нее ссылается. В чем может быть косяк?