22,299
社区成员




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