Các lượt nộp
    Danh sách bài
    Trang chủ
    Báo lỗi
    solution

    Đề bài: [SQL Server] Trigger trừ tồn kho khi bán hàng

    Hai bảng kho(id_sp, ton) và donhang(id, id_sp, so_luong).

    Hãy tạo trigger trg_ban_hang kiểu AFTER INSERT trên donhang: mỗi khi có đơn hàng mới, trừ so_luong tương ứng khỏi cột ton của sản phẩm đó trong bảng kho.

    Sau đó thêm đơn hàng (99, 1, 3) vào donhang, rồi in id_sp và ton của tất cả sản phẩm trong kho sắp xếp theo id_sp.

    • Định dạng đầu vào:

      Hai bảng đã được tạo sẵn. kho: id_sp INT, ton INT. donhang: id INT, id_sp INT, so_luong INT. Luôn có sản phẩm id_sp = 1 trong kho.

    • Ràng buộc đầu vào:

      Số dòng ≤1000\le 1000≤1000.

    • Định dạng đầu ra:

      Mỗi dòng gồm id_sp và ton, cách nhau bởi TAB.

    Ghi chú:

    Bài làm phải bắt đầu bằng một dòng GO — SQL Server yêu cầu CREATE TRIGGER là lệnh đầu tiên của một batch. Gợi ý: UPDATE k SET ... FROM kho k JOIN inserted i ON k.id_sp = i.id_sp.

    Ví dụ:

    Đầu vào:

    CREATE TABLE kho(id_sp INT, ton INT);
    CREATE TABLE donhang(id INT, id_sp INT, so_luong INT);
    INSERT INTO kho(id_sp,ton) VALUES (1,10),(2,20);

    Đầu ra:

    1	7
    2	20

    Chủ đề

    🗄️ Cơ sở dữ liệuSQL ServerSQL Server: TriggerTất cả môn học

    Đang tải editor...