Я не могу поймать интересующий идентификатор из вставленного и использовать его в exec хранимой процедуры - PullRequest
0 голосов
/ 29 марта 2019

Я не могу выполнить процедуру в моем триггере с параметром из псевдотаблицы inserted.

ALTER TRIGGER [dbo].[Restauracja]
ON [dbo].[RezerwacjaPozycje] 
AFTER INSERT, UPDATE, DELETE
AS 
BEGIN 
    DECLARE @ID INT;

    SELECT IdReservation = @ID 
    FROM INSERTED       

    EXEC SumOrderPositions @ID;
END

Если я изменю @id на f.e. 9. он корректно обновляет то, что я хочу для IdReservation число 9.

1 Ответ

0 голосов
/ 29 марта 2019

Если вы вставляете только одну строку, вы можете просто выполнить присвоение в правильном порядке:

BEGIN 
    DECLARE @ID  int;
    SELECT @ID = IdReservation
    FROM INSERTED;    

    EXEC SumOrderPositions @ID;
END;

Однако это ошибка, ожидающая появления.Вместо этого вы можете захотеть использовать курсор, пройтись по строкам в inserted, используя другой механизм, или проверить, что в inserted есть только одна строка.Я не уверен, какая именно логика вам нужна.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...