Добрый вечер, подскажите, пожалуйста, как правильно реализовать каскадное добавление? Вот у меня есть три таблицы Работник, Задача, Реализация задачи.
На сайте есть форма добавления новой задачи. В момент отправки вызывается следующая процедура:
ALTER procedure [dbo].[addTask]
@definition varchar(1000),
@userEmail varchar(30)
as
begin
if (@userEmail is not null)
BEGIN
INSERT INTO Задача(Описание)
VALUES(@definition)
END
UPDATE Реализация_задачи SET ID_работника = (SELECT ID_работника FROM Работник WHERE Электронная_почта = @userEmail)
WHERE ID_работника = 1
end
После того, как произошла вставка данных в таблицу Задача, срабатывает триггер:
ALTER TRIGGER [dbo].[realizeTask]
ON [dbo].[Задача]
AFTER insert
AS
insert into Реализация_задачи(ID_работника,Номер_задачи,)
values(1,(SELECT Номер_идеи FROM inserted))
Так как в триггер нельзя передать никакой параметр, то в качестве ID_работника просто прописываем 1. После того, как триггер отработал, возвращаемся в процедуру и обновляет таблицу Реализация_задачи, где заменяем ID_работника уже на реальное значение.
Подскажите, пожалуйста, наверное, такой подход является не верным? Сейчас я заполняю каким-то дефолтным значением ID_работника, но это впоследствии может привести к ряду ошибок. Но как иначе заполнить таблицу Реализация задачи я не знаю. Подскажите, пожалуйста?
Буду благодарна за Вашу помощь)