Mình có đoạn code SQL sau:
Nhưng khi mình debug xong ra cái số liệu như vậy là tại sao vậy ?
Ví dụ: KU001-MucDuyet là 50000000 sao đến khi nó lưu vào bảng ThuNO_CN thì lại là 40000000 của KU002 vậy @@ Code trigger của mình có chỗ nào ko ổn ak?
Untitled3.png
Code:
CREATE TABLE NHANVIEN ( MaNV Char(10)not null, HoTenNV Nvarchar(250), GioiTinh nvarchar(5), NgaySinh datetime, DiaChi Nvarchar(250), MaPhongBan Char(5) not null, MaChucVu Char(5), GhiChu Nvarchar(200) ) GO CREATE TRIGGER trgnhanvien ON NHANVIEN FOR INSERT, UPDATE AS BEGIN DECLARE @gt nvarchar(1) DECLARE @MaNV char(10) SELECT @gt=GioiTinh, @MaNV= MaNV FROM Inserted IF @gt= '0' UPDATE NHANVIEN SET GioiTinh= N'NAM' WHERE MaNV= @MaNv ELSE IF @gt= '1' UPDATE NHANVIEN SET GioiTinh= N'NỮ' WHERE MaNV= @MaNV ELSE BEGIN PRINT'Nhap 0 hoac 1 cho truong gioi tinh' ROLLBACK TRANSACTION END END GO CREATE TABLE KHEUOCKHACHHANG_CN ( MaSoKUCN Nvarchar(15)NOT NULL, MaKHCN char(10), MaLoaiVay Char(5), MaKieuTra Char(5), MaChuongTrinh Char(5), NhuCau Money, NgayDuyet datetime, MucDuyet Money, NgayVay datetime, NgayTra datetime, MaLaiSuat Char(5), MaMucDichVay Char(5), MaHTBaoDam Char(5), MaThoiHanVay Char(5), MaNV Char(10), MaHTVay Char(5), TraNoGocDinhKy Int, NgayTinhLai datetime ) GO CREATE TABLE THUNO_CN ( SoButToanCN Char(5)NOT NULL, NgayTN datetime, MaSoKUCN Nvarchar(15), SoTienThu Money, SoTienGoc Money, SoTienConLai Money, MaLoaiChungTu Char(5), ) GO CREATE TRIGGER trthuno ON THUNO_CN FOR INSERT, UPDATE AS BEGIN DECLARE @stg money DECLARE @md money SELECT @stg=SoTienGoc,@md=MucDuyet FROM inserted,KHEUOCKHACHHANG_CN WHERE KHEUOCKHACHHANG_CN.MaSoKUCN=inserted.MaSoKUCN update THUNO_CN set SoTienGoc=@md END GO ALTER TABLE NHANVIEN ADD CONSTRAINT PK_NHANVIEN PRIMARY KEY (MaNV) ALTER TABLE KHEUOCKHACHHANG_CN ADD CONSTRAINT PK1_KHEUOCKHACHHANG_CN PRIMARY KEY (MaSoKUCN) ALTER TABLE THUNO_CN ADD CONSTRAINT PK_THUNO_CN PRIMARY KEY (SoButToanCN) ALTER TABLE KHEUOCKHACHHANG_CN ADD CONSTRAINT FK10_KHEUOCKHACHHANG_CN FOREIGN KEY (MaNV) REFERENCES NHANVIEN(MaNV) ALTER TABLE THUNO_CN ADD CONSTRAINT FK1_THUNO_CN FOREIGN KEY (MaSoKUCN) REFERENCES KHEUOCKHACHHANG_CN(MaSoKUCN) GO set dateformat dmy INSERT INTO NHANVIEN VALUES('NV006',N'Huỳnh Yến Phượng','1','04/08/1992',N'Quận 7, Hồ Chí Minh','PB003','CV006',N'Nhân Viên'); INSERT INTO NHANVIEN VALUES('NV007',N'Nguyễn Minh Nhật','0','02/08/1994',N'Quận 9, Hồ Chí Minh','PB003','CV006',N'Nhân Viên'); INSERT INTO KHEUOCKHACHHANG_CN VALUES('KU001','CN001','LV02','KT001','CT006',20000000,'3/5/2013',50000000,'24/05/2014','24/05/2013','LS009','MD003','HT003','THV02','NV006','HTV02','1','31/05/2013'); INSERT INTO KHEUOCKHACHHANG_CN VALUES('KU002','CN002','LV01','KT002','CT007',60000000,'1/5/2013',40000000,'01/05/2014','01/09/2014','LS005','MD004','HT005','THV01','NV007','HTV05','1','09/05/2013'); INSERT INTO THUNO_CN VALUES ('BT001','15/06/2014','KU001',10000000,null,null,'CT001'); INSERT INTO THUNO_CN VALUES ('BT002','07/09/2014','KU002',50000000,null,null,'CT001');
Ví dụ: KU001-MucDuyet là 50000000 sao đến khi nó lưu vào bảng ThuNO_CN thì lại là 40000000 của KU002 vậy @@ Code trigger của mình có chỗ nào ko ổn ak?
Untitled3.png
Comment