SQL server触发器提问

chb89888404 2008-06-20 11:45:39
create trigger Course_CNO_List
on Course
for insert as
declare @Course_CNO int
select @Course_CNO=CNO from inserted
if(@Course_CNO not in(select CNO from Course))
begin
rollback transaction
raiserror('请输入课程号,%d不在Course中,请重新输入!',16,2,@Course_CNO)
end


这这个代码的意思是当我满足if条件的时候,就顺利的插入数据,否则就执行
raiserror('请输入课程号,%d不在Course中,请重新输入!',16,2,@Course_CNO)
但当不满足条件的时候为什么不出现
raiserror('请输入课程号,%d不在Course中,请重新输入!',16,2,@Course_CNO)
这个提示?
...全文
60 2 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
wzy_love_sly 2008-06-20
  • 打赏
  • 举报
回复
create trigger Course_CNO_List
on Course
for insert
as
begin

declare @Course_CNO int
select @Course_CNO=CNO from inserted
if exists(select 1 from inserted where cno not in(select CNO from Course))
begin
raiserror('请输入课程号,%d不在Course中,请重新输入!',16,2,@Course_CNO)
rollback transaction
end

end


pgy8288 2008-06-20
  • 打赏
  • 举报
回复
干吗把简单问题复杂化呢
写在存储过程里不是更简单.

create proc usp_AddCourse
(
@Course_CNO int
)
as
if not exists(select CNO from Course where (@Course_CNO = CNO))
insert ....-- 执行插入
else
begin
raiserror('请输入课程号,%d不在Course中,请重新输入!',16,2,@Course_CNO)
end

22,300

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧