SQL

SQLServer 创建触发器

耀世
2023-06-07 / 0 评论 / 21 阅读 / 正在检测是否收录...

创建数据库

create database Demo230607
--连数据库
use Demo230607
go

--创建记录表
Create table StudenLog
(
ID int primary key identity,
StuID int,  --学生ID
StuName varchar(200), --学生姓名
StuClassID int, --学生班级
Datetype varchar(200), --触发操作类型
CreateTime dateTime --触发时间
)
go

创建触发器

--触发器
create Trigger [Student_tri_add_data] --在添加学生表数据时触发
on students --属于哪个表的触发器
for insert --执行什么操作的时候触发
as
Begin 
 --触发器要执行的代码
 Declare @StuID int ,@StuName varchar(200),@StuClassID int; --声明变量用于存储数据
 --把新增的数据保存到变量中
 Select @StuID=StuID,@StuName=StuName,@StuClassID=ClassID from inserted; --inserted表存储的是上一次添加的数据
 --把数据添加到StudentLog
 insert into StudenLog(StuID,StuName,StuClassID,DateType,CreateTime) values(@StuID,@StuName,@StuClassID,'添加数据',getDate());
end
go

删除触发器

--触发器删除
Create Trigger [Student_tri_del_data] --在添加学生表数据时触发
on Students --属于哪个表的触发器
for delete --执行什么操作的时候触发
as
Begin 
 --触发器要执行的代码
 Declare @StuID int ,@StuName varchar(200),@StuClassID int; --声明变量用于存储数据
 --把新增的数据保存到变量中
 Select @StuID=StuID,@StuName=StuName,@StuClassID=ClassID from deleted; --inserted表存储的是上一次添加的数据
 select * from deleted 
 --把数据添加到StudentLog
 insert into StudenLog(StuID,StuName,StuClassID,DateType,CreateTime) values(@StuID,@StuName,@StuClassID,'删除数据',getDate());
end
go
--测试删除触发器
delete Students where StuName='杨戬'
go

lilh9o93.png

0

评论 (0)

取消