CREATE TRIGGER trg_insert_course ON Courses_8208210915 AFTER INSERT AS BEGIN DECLARE @Cno INT, @Score INT, @Sno INT; SELECT @Cno = Cno FROM inserted; SELECT TOP 10 @Sno = Sno FROM Students_8208210915 ORDER BY NEWID(); SET @Score = ABS(CHECKSUM(NEWID())) % 101; -- 生成一个 0~100 之间的随机数作为成绩 INSERT INTO Score_8208210915 (Sno, Cno, Score) VALUES (@Sno, @Cno, @Score); END;
时间: 2024-04-06 17:33:42 浏览: 35
Create-trigger.zip_sql create trigger_sql 触发_trigger
以上代码是创建一个触发器 trg_insert_course,当向 Courses_8208210915 表中插入一条新数据时,触发器会自动向 Score_8208210915 表中插入一条学生选修课程信息。具体来说,触发器会在 AFTER INSERT 时执行。在触发器中,首先通过 SELECT @Cno = Cno FROM inserted 获取插入的课程号,然后通过 SELECT TOP 10 @Sno = Sno FROM Students_8208210915 ORDER BY NEWID() 随机选取 10 条学生记录,生成学生的学号,并通过 SET @Score = ABS(CHECKSUM(NEWID())) % 101 生成一个 0~100 之间的随机数作为成绩。最后,通过 INSERT INTO Score_8208210915 (Sno, Cno, Score) VALUES (@Sno, @Cno, @Score) 将学生选修课程信息插入到 Score_8208210915 表中。
阅读全文