触发器练习三

Posted 一头野狼

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了触发器练习三相关的知识,希望对你有一定的参考价值。

题目一:INSERT触发器,在学生表(Stu)插入一条新数据的时候触发,学生课程表(Stu_Course)增加三条记录,新学生加入语文、数学、英语三门课程

CREATE TRIGGER INSERT_Stu_Course    ON  dbo.Stu   

AFTER  INSERT

AS

BEGIN

 --定义两个变量  @studentid,@studentname   DECLARE @studentid INT;   DECLARE @studentname VARCHAR(50);

--给两个变量赋值

Inserted 表为 学生表执行插入操作之后的临时表(存储插入后的数据)  

SELECT @studentid=studentid FROM Inserted;  

SELECT @studentname=studentname FROM Inserted;

--给学生课程表插入三条记录,新学生加入语文、数学、英语三门课程

 INSERT dbo.Stu_Course           ( studentid, courseid, studentname )   VALUES  ( @studentid, -- studentid - int             101, -- courseid - int             @studentname  -- studentname - nvarchar(50)             );

 INSERT dbo.Stu_Course           ( studentid, courseid, studentname )   VALUES  ( @studentid, -- studentid - int             102, -- courseid - int             @studentname  -- studentname - nvarchar(50)             );

 INSERT dbo.Stu_Course           ( studentid, courseid, studentname )   VALUES  ( @studentid, -- studentid - int             103, -- courseid - int             @studentname  -- studentname - nvarchar(50)             );

END GO

题目二:删除触发器,删除学生表的一条记录,同时删除改学生的学生课程表的记录

CREATE TRIGGER DELETE_Stu   

ON dbo.Stu   

AFTER DELETE

AS

BEGIN  

  --定义一个变量,@studentid   

DECLARE @studentid INT;   

--给变量赋值 @studentid,表deleted是在执行删除操作之前的临时表用来存储操作之前的记录。   

SELECT @studentid=studentid FROM Deleted;   

DELETE dbo.Stu_Course WHERE [email protected];

END GO

 

题目三:update触发器,更改学生表Stu中的学生编号,学生课程表(Stu_Course)的学生编号也随之改变

 

CREATE TRIGGER UPDATE_Stu   

ON  dbo.Stu   

AFTER UPDATE

AS

BEGIN

    --定义变量

@studentid  DECLARE @studentid INT;

 --给@studentid 赋值 DELETED表用来存储操作之后的记录的临时表

 SELECT @studentid=studentid FROM inserted

 UPDATE dbo.Stu_Course SET [email protected]

END

GO

 

以上是关于触发器练习三的主要内容,如果未能解决你的问题,请参考以下文章

JavaScript DOM事件进阶及相关练习

数据库高级数据库学习--上机练习9-2(触发器)

sqlserver的触发器练习实例

PL/SQL 触发器练习

2017-07-31(触发器,包,游标练习)

Oracle——触发器和游标练习题