시작하기무료로 시작하기

주문 전 재고 확인

여러 번 고객이 주문을 넣었는데, 회사에 그 주문을 처리할 만큼의 재고가 충분하지 않았던 적이 있었습니다.

이 문제는 동작에 조건부 로직을 가진 새 트리거를 추가하면 쉽게 해결할 수 있어요.

트리거는 Orders 테이블에 새 행이 추가될 때 실행되어, 지정된 제품의 주문을 처리할 만큼의 재고가 회사에 충분한지 확인해야 합니다.

재고가 충분하면, 트리거는 자신을 실행시킨 것과 동일한 INSERT 작업을 수행하되—이번에는 값을 inserted 특수 테이블에서 가져와서 수행합니다.

이 연습은 강의의 일부입니다

SQL Server에서 트리거 구축 및 최적화

강의 보기

연습 안내

  • INSERT 문에 대해 실행되고, 주문 수량을 현재 재고로 충족할 수 있는지 확인하는 새 트리거를 추가하세요.
  • 재고가 부족하면 오류를 발생시키세요. 그렇지 않으면 inserted 특수 테이블을 이용해 INSERT를 수행하세요.

실습형 인터랙티브 연습

이 예제를 이 샘플 코드를 완성하여 풀어보세요.

-- Create a new trigger to confirm stock before ordering
CREATE TRIGGER ConfirmStock
ON Orders
INSTEAD OF ___
AS
	IF EXISTS (SELECT *
			   FROM Products AS p
			   INNER JOIN inserted AS i ON i.Product = p.Product
			   WHERE p.Quantity < i.Quantity)
	BEGIN
		___ ('You cannot place orders when there is no stock for the order''s product.', 16, 1);
	END
	ELSE
	BEGIN
		INSERT INTO Orders (OrderID, Customer, Product, Price, Currency, Quantity, WithDiscount, Discount, OrderDate, TotalAmount, Dispatched)
		SELECT OrderID, Customer, Product, Price, Currency, Quantity, WithDiscount, Discount, OrderDate, TotalAmount, Dispatched FROM ___;
	END;
코드 편집 및 실행