Здравствуйте.
Возникли вопросы при работе с БД. В БД есть три связанные таблицы, они видны на ER диаграмме.
Я хочу чтобы при удалении записи в таблице s_test удалялась связанная с ней информация в таблицах test_task и s_task. Для этого я использую триггеры.
При удалении записи в s_test срабатывает следующий триггер:
ALTER TRIGGER [dbo].[t_del_test]
ON [dbo].[s_test] INSTEAD OF DELETE
AS
DECLARE @id int;
SELECT @id = id_test from deleted;
DELETE FROM test_task WHERE id_test = @id;
DELETE FROM s_test WHERE id_test=@id;
Он отрабатывает корректно и удаляет все связанные записи в таблице test_task.
Однако в дальнейшем возникают проблемы. При использовании в test_task следующего триггера
ALTER TRIGGER [dbo].[t_del_test_task]
ON [dbo].[test_task] AFTER DELETE
AS
DECLARE @id int;
SELECT @id = id_task from deleted;
DELETE FROM s_task WHERE id_task=@id;
удаляется только одна запись в s_test, я понимаю почему это происходит, но не знаю как сделать правильно. Т.е. чтобы в s_task удалялись все записи.
Прошу указать способ решения если такой существует, или обозначить направление поисков.
Прошу прощения за большое описание и заранее благодарю за помощь.