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
Bài liên quan
Nó sai khi bạn làm gì? Chèn, cập nhật, hay tự nó làm sai luôn?
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…
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