关于触发器的问题
求高人帮我解释一下下面这段代码哦,我能看懂的后面都做注释了,红色部分是看不懂的,能给详细解释一下吗?跪谢了
为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