Bắt đầu ngayBắt đầu miễn phí

Kiểm tra tồn kho trước khi đặt hàng

Nhiều lần, khách hàng đã đặt mua sản phẩm khi công ty không có đủ hàng tồn để đáp ứng đơn hàng.

Bạn có thể khắc phục dễ dàng bằng cách thêm một trigger mới với logic điều kiện cho các hành động của nó.

Trigger cần được kích hoạt khi có hàng mới được thêm vào bảng Orders và kiểm tra xem công ty có đủ tồn kho cho các sản phẩm được chỉ định để đáp ứng các đơn hàng đó hay không.

Nếu tồn kho đủ, trigger sẽ thực hiện thao tác INSERT giống thao tác đã kích hoạt nó — chỉ khác là lần này, các giá trị sẽ được lấy từ bảng đặc biệt inserted.

Bài tập này là một phần của khóa học

Xây dựng và Tối ưu hóa Trigger trong SQL Server

Xem khóa học

Hướng dẫn bài tập

  • Thêm một trigger mới kích hoạt cho câu lệnh INSERT và kiểm tra xem số lượng đặt hàng có thể được đáp ứng bởi tồn kho hiện tại hay không.
  • Nếu không đủ hàng, hãy phát sinh lỗi. Ngược lại, thực hiện INSERT bằng cách sử dụng bảng đặc biệt inserted.

Bài tập tương tác thực hành trực tiếp

Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.

-- 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;
Chỉnh sửa và Chạy Mã