Я довольно новичок в Триггерах, так как не пользуюсь ими часто.Вот мой код: - Извините, я не могу опубликовать его в комментариях по какой-то причине:
after insert, update
AS
BEGIN
DECLARE @STAGE VARCHAR (50)
set @STAGE = (SELECT b.Stage from INSERTED i inner join Opp_View B on i.Opp_Id = b.Opp_Id where i.Opp_Id = b.Opp_Id)
if @STAGE IN ('not started','Initial comm','Needs assessment','Proposal submission','closing phase','Commitment to buy','sale won')
BEGIN
INSERT INTO O_Stage
(Client_id,Contact_Number,O_Stage)
SELECT i.Opp_id, 0, b.Stage FROM INSERTED i
inner join opp_view B on i.Opp_Id = b.Opp_Id
where i.Opp_Type = '0' and i.Opp_Id = b.Opp_Id
End
End
GO
Мои результаты следующие:
Результаты следующие:
Когда я вставляю возможность, оба поля имеют одинаковое значение.Это хорошо, однако .. Я считаю, что если я пытаюсь вставить другую возможность для той же записи - это не меняет значение в таблице 2, например: если я делаю выбор * из O_stage - он показывает только первую вставленную запись: Client_Id|O_Stage 181004250828540240011O |Initial Comm
Мне нужно, чтобы он проверил, существует ли запись, и если да, то Обновите Сцену, однако, если она не существует (новая запись), ее нужно вставить.вставьте, однако, я не знаю, как написать синтаксис ..
Этапы уже определены как в таблице возможностей, так и в таблице O_stage. Это неправильный способ достижения цели?Должен ли я оставить таблицу O_stage пустой, чтобы при запуске триггера он вставлял значения?
Как мне сделать следующее:
проверить, существует ли значение и существует ли оно, затем удалить старое значение и вставить новое значение