Mình có 2 bảng như thế này CTHD(MaHD, MaMon, SoLuong, DonGia) và bảng HD(MaHD, NgayHD, TongTien) mình có cái trigger như sau:
Khi mình thay đổi Số lượng thì đơn giá bên bảng CTHD sẽ thay đổi và Tổng tiền bên bảng HD cũng thay đổi. Khi Update Số lượng thì dòng này sẽ chạy trc:
Trong đoạn trigger trên có dòng Update lại cái Đơn giá trong bảng CTHD:
Câu hỏi của mình ở đây: Sau khi Update Đơn Giá thì nó có nhảy qua dòng trigger ở dưới hay không?
Mình đã chạy rồi, nhưng nó không thực thi, Tổng tiền vẫn là 0 vnđ, ko biết mình có viết trigger sai ko, mong mọi người giúp mình nhé....^^
Cám ơn mọi người đã quan tâm và giúp đỡ ^^....
PHP Code:
IF UPDATE(DonGia)
BEGIN
IF ((SELECT COUNT(*) FROM INSERTED) > 0)
BEGIN
SET @KHOANGCACH = (SELECT DonGia FROM INSERTED)
UPDATE tblHoaDon SET TongTien = TongTien + @KHOANGCACH WHERE MaHD IN (SELECT MAHD FROM INSERTED)
END
IF ((SELECT COUNT(*) FROM DELETED) > 0)
BEGIN
SET @KHOANGCACH = (SELECT DonGia FROM DELETED)
UPDATE tblHoaDon SET TongTien = TongTien - @KHOANGCACH WHERE MaHD IN (SELECT MAHD FROM DELETED)
END
END
IF UPDATE(SoLuong)
BEGIN
IF ((SELECT COUNT(*) FROM INSERTED) > 0)
BEGIN
SET @DONGIA = (SELECT GiaTien FROM tblThucDon WHERE MaMon IN (SELECT MaMon FROM INSERTED)) * (SELECT SoLuong FROM INSERTED)
UPDATE tblChiTietHoaDon SET DonGia = @DonGia WHERE MaHD IN (SELECT MAHD FROM INSERTED)
END
END
PHP Code:
IF UPDATE(SoLuong)
BEGIN
IF ((SELECT COUNT(*) FROM INSERTED) > 0)
BEGIN
SET @DONGIA = (SELECT GiaTien FROM tblThucDon WHERE MaMon IN (SELECT MaMon FROM INSERTED)) * (SELECT SoLuong FROM INSERTED)
UPDATE tblChiTietHoaDon SET DonGia = @DonGia WHERE MaHD IN (SELECT MAHD FROM INSERTED)
END
END
PHP Code:
UPDATE tblChiTietHoaDon SET DonGia = @DonGia WHERE MaHD IN (SELECT MAHD FROM INSERTED)
Câu hỏi của mình ở đây: Sau khi Update Đơn Giá thì nó có nhảy qua dòng trigger ở dưới hay không?
PHP Code:
IF UPDATE(DonGia)
BEGIN
IF ((SELECT COUNT(*) FROM INSERTED) > 0)
BEGIN
SET @KHOANGCACH = (SELECT DonGia FROM INSERTED)
UPDATE tblHoaDon SET TongTien = TongTien + @KHOANGCACH WHERE MaHD IN (SELECT MAHD FROM INSERTED)
END
IF ((SELECT COUNT(*) FROM DELETED) > 0)
BEGIN
SET @KHOANGCACH = (SELECT DonGia FROM DELETED)
UPDATE tblHoaDon SET TongTien = TongTien - @KHOANGCACH WHERE MaHD IN (SELECT MAHD FROM DELETED)
END
END
Cám ơn mọi người đã quan tâm và giúp đỡ ^^....
Comment