Добрый день, у меня возникли проблемы с тем, чтобы понять этот вопрос в классе. Целью этого задания является добавление параметров ввода данных с помощью триггеров, которые запускаются при выполнении определенных условий.
Из-за ограничений складского хранения запасы более 800 единиц необходимо отправлять на внешнее хранилище и отслеживать отдельно. Вас попросили отслеживать, когда обновление выходит за эти границы, чтобы его можно было обсудить на рабочих собраниях. Напишите триггер под названием «tgrExcessInventory» для таблицы Production.ProductInventory, чтобы гарантировать, что количество никогда не превысит 800 единиц. Это первый шаг. Измените триггер, созданный на шаге 1, чтобы он выполнял его проверочный код, только если столбец Количество обновлен. Я успешно создал триггер, но не могу понять, как его изменить? Это то, что у меня есть до сих пор. Я видел здесь несколько других сообщений, похожих на этот вопрос, но я не видел ни одного с внесенными в него изменениями. Я чувствую, что это что-то маленькое, что мне не хватает. Насколько я понимаю, мне нужно написать заявление об изменении?
CREATE TRIGGER tgrExcessInventory
on Production.ProductInventory
FOR UPDATE
AS
IF EXISTS
(SELECT 'True'
FROM Inserted i
JOIN Deleted d
ON i.productID = d.ProductID
AND i.locationID = d.LocationID
WHERE (d.quantity + i.quantity) >= 800 OR
i.quantity >=800
)Begin
RAISERROR('Cant increase supply where units would be over 800
units',16,1)
ROLLBACK TRAN
END
Затем я сделал функцию изменения
ALTER TRIGGER [Production].[tgrExcessInventory]
on [Production].[ProductInventory]
FOR UPDATE
AS
IF EXISTS
(SELECT 'True'
FROM Inserted I
JOIN Deleted D
ON i.Quantity = d.quantity
AND i.Quantity = d.Quantity
WHERE (d.quantity + i.quantity) >= 800 OR
i.quantity >=800
)Begin
RAISERROR('Cant increase supply where units would be over 800 units',16,1)
ROLLBACK TRAN
END
Кажется, работает? Я считаю, что сделал это правильно, любые советы будут оценены, спасибо за ваше время