触发器
触发器---特殊的存储过程,通过增减改数据来自动引发
create trigger TR_student_insert (TR_表明_操作)
on student
for insert(for 是新增之后触发)
as
begin
end
go
----------------------------------------------------------
alter trigger TR_student_insert
on student
for insert
as
begin
update student set sname='大混蛋' where sname='王八蛋'
end
go
insert into Student values (304,'王八蛋','男','1990-12-14','95031')
insert into Student values(306,'大混蛋','男','1992-09-02','95035')
select *from Student
alter trigger TR_student_delete
on student
instead of delete
as
begin
declare @sno int
select @sno=sno from deleted
delete from score where sno=@sno
delete from student where sno=@sno
end
go
delete from Student where Sno=304
select *from Student insert into Score values(304,'3-105',98)
select *from Score
create trigger TR_student_inserted
on student
instead of insert
as
begin
declare @sno int,@sname varchar(20),@ssex varchar(20),@sbirthday datetime,@class varchar(20)
select @sno=sno,@sname=sname,@ssex=ssex,@sbirthday=sbirthday,@class=class from inserted
if @ssex='男'
begin
set @ssex='1'
end
insert into student values (@sno,@sname,@ssex,@sbirthday,@class)
end
go
insert into Student values(303,'李白','男','1992-03-12','95033')
select *from Student
inserted---临时表 ,获取数据 ,此题中 inserted 代替触发器外的insert。
---触发器中的insert是把执行后的inserted 插入到student表中