| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 387 人关注过本帖
标题:关于触发器的问题
取消只看楼主 加入收藏
fyz520
Rank: 1
等 级:新手上路
帖 子:120
专家分:1
注 册:2010-1-27
结帖率:95.12%
收藏
已结贴  问题点数:5 回复次数:0 
关于触发器的问题

求高人帮我解释一下下面这段代码哦,我能看懂的后面都做注释了,红色部分是看不懂的,能给详细解释一下吗?跪谢了


为STUDENT表创建触发器S_insert,当向STUDENT表中插入数据时,要求学号必须以“97”开头,且课程号CNO必须在COURSE表中,否则取消插入操作,以下是代码:


CREATE TRIGGER S_insert  //创建触发器S_insert
ON STUDENT               //与触发器相关联的表的名字student
FOR INSERT AS            //当执行insert操作时将激发触发器
DECLARE @S_no VARCHAR(4), @S_cno INT     //???  
SELECT @S_no= SNO, @S_cno=CNO            //???  
FROM INSERTED                            //???
IF (LEFT(@S_no,2)!='97')                 //???   
BEGIN                                    //???
ROLLBACK TRANSACTION                     //???
RAISERROR('输入的学号:%s不是97级的学生,请确认后重新录入!',16,1, @S_no)           //???
END  
IF(@S_cno NOT IN (SELECT CNO FROM COURSE))                                          //???
BEGIN                                                                               //???
ROLLBACK TRANSACTION                                                                //???
RAISERROR('输入的课程号:%d在COURSE表中不存在,请确认后重新录入!',16,1, @S_cno)    //???
END

搜索更多相关主题的帖子: 触发器 
2010-07-24 12:31
快速回复:关于触发器的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017979 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved