比如
select Cno from Xuanke where Sno=@Sno
我用if判断
if(select Cno from Xuanke where Sno=@Sno)
总是返回1,然后if就开始执行了
就算写成count(Cno),返回值也一直是1
究竟怎么判断,我弄了一整天,百度了半天,都找不到方法
我主要是判断该学生在选课表里是否已有选课记录,有选课记录就判断上课时间冲突,没有就end不执行任何操作
------解决思路----------------------
alter trigger screentime
on Xuanke
instead of insert
as
begin
begin tran
if exists(select * from Xuanke as a join inserted as b on a.Sno=b.Sno and a.Cno is not null)
begin
print '改学生已有课'
rollback tran
end
else
begin
insert into xuanke select * from inserted
print'插入成功'
commit
end
end
go
insert into Xuanke values(101,01,80)
insert into Xuanke values(101,02,80)
--这2句进行分别执行。第一句没问题。但是执行第二句就会提示已经有课。会插入不成功
这里必须用BEFORE 触发器。用FOR 触发器。表示触发器会在插入之后执行。你已经把记录插入到表里面了。
这样你在用IF 判断。表里面肯定存在记录啊。所有都是返回1