fengjian

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

 

分类:

技术点:

相关文章:

  • 2022-02-28
  • 2022-02-06
  • 2022-12-23
  • 2021-09-11
  • 2022-12-23
  • 2022-12-23
  • 2021-11-10
  • 2022-12-23
猜你喜欢
  • 2021-07-26
  • 2021-11-16
  • 2021-07-24
  • 2022-01-23
  • 2022-12-23
  • 2022-12-23
  • 2022-01-10
相关资源
相似解决方案