凌动小生的Blog

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

student 表 -course 表 student-course 关系表

当insert student的时候在关系表里添加student和course的关系。由于course是必修课,所以属于同一个major的student和course要默认选择。即student必须选择major的course。

 1 --创建insert插入类型触发器
 2 if (object_id('tgr_student_insert', 'tr') is not null)
 3     drop trigger tgr_student_insert
 4 GO
 5 
 6     create trigger tgr_student_insert
 7     on student
 8         for insert --插入触发
 9     as
10     --定义变量
11     declare @studentid int, @name varchar(20), @major int;
12     --在inserted表中查询已经插入记录信息
13     select @studentid = id, @name = name ,@major =     majorID from inserted;
14 --    set @name = @name + convert(varchar, @id);
15     --set @temp = @id / 2;  
16     DECLARE @courseid int;
17     DECLARE contact_cursor CURSOR FOR
18     select id from course where majorID = @major;
19     
20     OPEN contact_cursor;
21     
22     -- Perform the first fetch and store the values in variables.
23     -- Note: The variables are in the same order as the columns
24     -- in the SELECT statement. 
25 
26     FETCH NEXT FROM contact_cursor
27     INTO @courseid;
28 
29     -- Check @@FETCH_STATUS to see if there are any more rows to fetch.
30     WHILE @@FETCH_STATUS = 0
31     BEGIN
32 
33     -- Concatenate and display the current values in the variables.
34     --PRINT 'Course Name: ' + @courseid 
35     INSERT INTO student_course (course_id,student_id) VALUES(@courseid,@studentid);
36     -- This is executed as long as the previous fetch succeeds.
37     FETCH NEXT FROM contact_cursor
38     INTO @courseid;
39     END
40 
41     CLOSE contact_cursor;
42     DEALLOCATE contact_cursor;
43     
44     GO

 

posted on 2013-04-17 22:56  凌动小生  阅读(324)  评论(0编辑  收藏  举报