01/10/2018, 17:29

Lỗi khi dùng trigger

Em có 1 cơ sở dữ liệu chỉ có 1 bảng SinhVien gồm MaSV, TenSV, Toan. Em viết trigger để cho phép điểm toán chỉ có thể nhận giá trị 0 đến 10 khi insert, update nhưng không biết sai ở đâu mong mọi người sửa giúp.

create trigger test on SinhVien
for insert , update
as
begin
	declare @masv nvarchar(5), @toan float
	select @masv = masv, @toan = toan from inserted
	update SinhVien set toan = @toan where masv = @masv and (@toan between 0 and 10)
end
Trương Tấn Phát viết 19:46 ngày 01/10/2018

Nó sai khi bạn làm gì? Chèn, cập nhật, hay tự nó làm sai luôn?

update SinhVien set toan = @toan where masv = @masv and (@toan between 0 and 10)

Thế là thế nào? Nếu muốn toán nằm trong 0 - 10 thì phải xét (if - else) điểm toán trước chứ. Nếu thỏa đk thì chèn…

Black viết 19:32 ngày 01/10/2018

Nó sai khi khi em chèn hoặc update. Khi em chèn hoặc update thì nhập bất cứ giá trị nào nó cũng nhận kể cả > 10 hoặc < 0.

Em nghĩ câu lệnh update nó phải thỏa mãn điều kiện ở where thì mới update chứ như vậy thì không cần phải dùng if else

Bài liên quan
0