PDA

View Full Version : help delete trigger



tgioihan
08-03-2011, 18:20
Xin chào mọi người!
Mình có 1 bài tập thế này mong moi người giúp đỡ.
Viết trigger xóa bản ghi trong bảng LoaiSanPham. Khi xóa thi lưu thông tin mã loại sản phẩm (MaLoaiSP), và thông tin ngày xóa (DelDate) vào bảng LoaiSP_Hist đồng thời xóa các bản ghi tương ứng trong các bảng liên quan (tức là các bảng có chứa khóa ngoại tham chiếu đến bảng LoaiSanPham.

Thông tin bảng loại sản phẩm:
Maloaisp Tenloaisp Mota
DL Điện lạnh null
DT Điện tử null
TD tiêu dùng null
Bảng sản phẩm có chứa khóa ngoại Maloaisp tham chiếu đén bảng loaisanpham.
ai giúp mình bài này với,đang cần lắm.

[=========> Bổ sung bài viết <=========]

Ai làm ơn giúp mình với:(

chip07
17-03-2011, 12:30
1. Xóa các bảng liên quan

Khi tạo FOREIGN KEY, code như sau

ALTER TABLE tblLoaiSanPham
ADD CONSTRAINT FK_tblLoaiSanPham_tblSanPham
FOREIGN KEY (MaLoaiSP)
REFERENCES tblSanPham (MaLoai)
ON UPDATE CASCADE
ON DELETE CASCADE

sau đó hệ thống sẽ tự xóa các bản ghi liên quan (FOREIGN) nếu bản chính (PRIMARY) bị xóa

2. Tạo trigger

CREATE TRIGGER tg_LoaiSanPhamD
ON tblLoaiSanPham
FOR DELETE

AS
BEGIN

INSERT INTO tblLoaiSP_Hist (MaLoaiSP, DelDate)
SELECT MaLoaiSP, GETDATE()
FROM DELETED

END

GO