Hai bảng sanpham(id, ten, gia) và lichsu_gia(id_sp, gia_cu, gia_moi).
Hãy tạo trigger trg_doi_gia kiểu AFTER UPDATE trên sanpham: mỗi khi giá bị thay đổi, ghi vào lichsu_gia một dòng gồm id sản phẩm, giá cũ (lấy từ bảng ảo deleted) và giá mới (lấy từ inserted).
Sau đó tăng giá tất cả sản phẩm thêm 10%% (gia = gia * 11 / 10), rồi in id_sp, gia_cu, gia_moi sắp xếp theo id_sp tăng dần.
Hai bảng đã được tạo sẵn. sanpham: id INT, ten NVARCHAR(50), gia INT. lichsu_gia: id_sp INT, gia_cu INT, gia_moi INT.
Số sản phẩm ≤1000. Phép chia là chia nguyên.
Mỗi dòng gồm id_sp, gia_cu, gia_moi, cách nhau bởi TAB.
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 ý: JOIN hai bảng ảo inserted và deleted theo id.
Ví dụ:
Đầu vào:
CREATE TABLE sanpham(id INT, ten NVARCHAR(50), gia INT);
CREATE TABLE lichsu_gia(id_sp INT, gia_cu INT, gia_moi INT);
INSERT INTO sanpham(id,ten,gia) VALUES (1,N'A',100),(2,N'B',200);
Đầu ra:
1 100 110
2 200 220
Đang tải editor...