Я бы обычно советовал использовать триггер, но обычная манипуляция - это такая операция, которая обычно выполняется много раз, иногда в пакетах, и это не лучший сценарий для триггеров, если честно.
Я думаю, что идея PKG очень хорошая, но вы никогда не должны забывать добавить к ней контроль транзакций, в противном случае вы можете получить несоответствующие акции:
CREATE PROC dbo.ProcessOrder
@Item int,
@Quantity int
AS
BEGIN
begin transaction my_tran
begin try
--Update order table here
INSERT INTO dbo.Orders(ItemID,Quantity)
VALUES (@ItemID, @Quantity)
--Update Inventory here
UPDATE dbo.Inventory
SET CurrentQuantity = CurrentQuantity - Quantity
WHERE ItemID = @ItemID
commit transaction
end try
begin catch
rollback transaction
--raise error if necessary
end catch
END