我在sql表中建立了一个回滚触发器,就是如果成绩表的数据超过0到100之间,就提示“数据只能在0到100之间”。我在SQL中试了好用,但是我在VB中运行的时候,到也能执行,只要我输入100以上的数据的时候,就提示超出范围,但是我要是确定的话vb就报错了,就提示操作已取消什么的,然后就完蛋了,哈哈。谁能帮我解决一下,谢谢了哈,我把代码给大家看下哈。
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
GO
ALTER TRIGGER [dbo].[sc_insupd]
ON [dbo].[成绩表]
FOR INSERT, UPDATE
AS
DECLARE @sx int
DECLARE @wli int
DECLARE @yy int
DECLARE @vb int
DECLARE @wluo int
DECLARE @zx int
SELECT @sx=inserted.数学 from inserted
SELECT @wli=inserted.物理 from inserted
SELECT @yy=inserted.英语 from inserted
SELECT @vb=inserted.VB from inserted
SELECT @wluo=inserted.网络 from inserted
SELECT @zx=inserted.哲学 from inserted
IF ((@sx<0 or @sx > 100)or(@wli<0 or @wli > 100)or(@yy<0 or @yy > 100)or(@vb<0 or @vb > 100)or(@wluo<0 or @wluo > 100)or(@zx<0 or @zx > 100))
BEGIN
RAISERROR ('成绩的取值必须在0到100之间', 16, 1)
ROLLBACK TRANSACTION
END