20141111--SQL触发器

时间:2023-03-09 16:01:10
20141111--SQL触发器
---------------------触发器-----------------------------
--触发器本质上还是一个存储过程,trigger
--只不过不是通过exec调用执行,而是通过增删改查数据库的操作来触发
--针对主外键表操作时 将关联的表一起修改
--触发器 方便记忆的命名格式:Tr(缩写)_(表名)_(增/删/改)
--instead of 在...之前 等于 替换操作,只执行触发器里面的语句
--for (after) 在...之后 先执行语句在执行触发器内的语句
select *from Student--学生信息 alter trigger Tr_student_delete
on student
instead of delete
as
delete from score where sno=109
delete from Student where Sno=109
go
delete from Student where Sno=109 --------------------参数-------------------------
create trigger tr_dongtai
on teacher
instead of delete
as
begin
declare @tno char(10)
set @tno=(select tno from deleted)--deleted虚拟表,
update teacher set tname='刘燕' where tno=@tno
end
go
drop trigger tr_dongtai
select * from Teacher
delete from Teacher where Tno=''
-----------------------------------------
create trigger tr_teacher_insert
on teacher
for insert
as
begin
declare @tno varchar(50)
set @tno =(select tno from inserted)
delete from teachar where tno=@tno
end
--------------------禁用,开启
alter table teacher disable trigger all--禁用所有触发器
alter table teacher enable trigger all--开启所有触发器
--all改成触发器名 可以开启或禁用单个触发器