Ниже приведен пример триггера.
CREATE TRIGGER Delete_Staff_tables
ON Staff
FOR DELETE
AS
BEGIN
DECLARE @StaffID INT
SELECT @StaffID = Staff_ID FROM Deleted
DELETE FROM StaffStudy WHERE staff_ID = @StaffID
DELETE FROM StaffPension WHERE staff_ID = @StaffID
-- Etc
END
Однако убедитесь, что имеет смысл удалить дочерние таблицы. Если сотрудник уходит (и удаляется), он может сильно расстроиться, если тоже потеряет свою пенсию.
Дополнительные комментарии
Как предложил Митч, добавление дополнительных удалений в код клиента имеет смысл, поскольку триггер базы данных может вызвать некоторые удаления, о которых другие программисты могут не знать. Однако, если вы выполняете 12 дополнительных запросов в своем клиентском коде, обязательно заключите их в транзакцию. Какое влияние это окажет на вашу систему, если 3-6 запросов на удаление пройдут успешно, а остальные нет?