как удалить записи из table

есть две таблицы:

--First Table
CREATE TABLE SimulatedResult.SimulatedResultGroup
(
    Id INT PRIMARY KEY,
    GroupName VARCHAR(255)
);

--Second Table
CREATE TABLE SimulatedResult.EventForSimulateGroup
(
    Id INT PRIMARY KEY,
    EventId int,
    SimulatedResultGroupId INT FOREIGN KEY REFERENCES SimulatedResult.SimulatedResultGroup(Id)
);

хочу удалить записи с первой таблицы(SimulatedResultGroup) и все записи которые связаны с ним во втором таблице


Ответы (2 шт):

Автор решения: antray

Вы либо должны добавить во второй таблице внешнему ключу свойство ON DELETE CASCADE, и тогда при удалении данных из первой таблицы будут автоматически удаляться из второй, либо писать запрос на удаление с сравнением полей.

→ Ссылка
Автор решения: HackerU

Для того, чтобы автоматизировать этот процесс стоит повесить триггер на процесс удаления первой таблицы.

CREATE TRIGGER TRG_DEL
ON SimulatedResult.SimulatedResultGroup
FOR DELETE
AS
     delete from SimulatedResult.EventForSimulateGroup
     where SimulatedResultGroupId in (select id from DELETED );

Теперь при удалении записи из SimulatedResultGroup будут автоматически удаляться записи из EventForSimulateGroup

→ Ссылка