日期:2014-05-17  浏览次数:20424 次

创建触发器时候报错。。一直没找到。。%>_<%求助啊。。。
约束是:在课程表插入一条数据的时候,如果课程的Cflag标记是1也就是必修,就为每个学生在成绩表中插入一条数据

就是不知道哪儿出错了。。。。小妹数据库还是入门级。。。求大虾们帮忙。。%>_<%



还有一个地方觉得很奇怪:


求助啊。。。马上就要跟老师检查了。。%>_<%




------解决方案--------------------
触发器用这个试试,你还有student表没给我,不过算了。你自己给东西慢而已
CREATE TRIGGER insert_course ON Course
     FOR INSERT
 AS
     DECLARE @Cno INT                                        --@Cno用于接收插入的课程号
     DECLARE @Cflag BIT                                      --@flag用于接收课程的是否选修
     DECLARE @Sno INT                                        --@Sno用于接收学生学号
  
     SELECT  @Cno = Cno
     FROM    inserted
     SELECT  @Cflag = Cflag
     FROM    inserted
  
     DECLARE my_cursor CURSOR
     FOR
         SELECT  Sno
         FROM    Student              --声明游标
     OPEN my_cursor                                                       --打开游标
     FETCH NEXT FROM my_cursor INTO @Sno           --通过游标逐个读取学生学号赋给变量
  
     IF ( @Cflag = 1 ) 
         BEGIN
             WHILE ( @@fetch_status = 0 ) 
                 BEGIN
                     INSERT  INTO Greade
                             ( sno, cno )
                     VALUES  ( @Sno, @cno )
          &nb