Я создал триггер для обновления строк в другой таблице, вызванный оператором обновления в dbo.update
. Причина, по которой этот триггер не срабатывает, вероятно, потому, что он пытается обновить более 1 записи. Я пытаюсь изменить это, но без результата. Мне интересно: как правильно это сделать?Подзапрос возвратил более одного значения на триггере
CREATE TRIGGER
[dbo].[Update]
ON
[dbo].[Records]
FOR UPDATE
AS
BEGIN
SET NOCOUNT ON
IF (SELECT State FROM INSERTED) = '1'
Begin
UPDATE dbo.Issue SET state = 1 WHERE EventID = (SELECT EventID FROM INSERTED)
DECLARE @IssueID INT
SET @issueID = (SELECT IssueID FROM Issue WHERE EventID = (SELECT EventID FROM INSERTED))
UPDATE dbo.Action SET state = 1 WHERE IssueID = @issueID
end
IF (SELECT State FROM INSERTED) = '0'
Begin
UPDATE dbo.Issue SET state = 0 WHERE EventID = (SELECT EventID FROM INSERTED)
SET @issueID = (SELECT IssueID FROM Issue WHERE EventID = (SELECT EventID FROM INSERTED))
UPDATE dbo.Action SET state = 0 WHERE IssueID = @issueID
end
END
'IF (SELECT State FROM INSERTED) = '1'' ... Используйте курсор для чтения таблицы. – jarlh