码迷,mamicode.com
首页 > 数据库 > 详细

SQL Sever 第五堂课:触发器知识。

时间:2015-04-29 13:26:00      阅读:145      评论:0      收藏:0      [点我收藏+]

标签:

--触发器:触发器就是一种特殊的存储过程
--特殊的地方在于,触发器是通过对数据库表的操作,来引发
--存储过程是通过人为exec来执行


select *from student
create trigger Student_Insert --创建触发器
on student  --指定触发器所在的表
after insert --当执行insert操作的时候自动执行触发器,for 和after都是在操作后执行
as
    update student set sbirthdy=1999-9-9 where sno=1
go
insert into student values(7,向立硕,,1989-2-22,95031)



create trigger Student_Delete
on student
instead of delete --替换某个操作,用触发器的过程来替换删除的操作,不再能够删除stduent表数据
as
    update student set sbirthdy = 2015-4-29 where sno = 2
go
delete from student
select*from student
drop trigger student_delete




-----------------------------触发器格式
create trigger 触发器名
on 表名
((for/after)|instead of) 动作(insert|update|delete)
as
    存储过程内容
go


for/after :先执行操作,再执行触发器
instead of:直接替换操作
--
create trigger Student_delete2
on student
instead of delete   --把delete from student 这个操作直接替换掉
as
    delete from score where sno = 2
    delete from student where sno = 2   --有主外键关系可以执行两个表
go
delete from student 
drop trigger student_delete2--删除触发器
select*from student
select*from score


--触发器中的临时表:deleted,inserted
delete from course where cno=3-245

create trigger Course_Delete   --创建一个的存储过程
on course                --在课程表里
instead of delete      --直接替换delete操作
as
    select *from deleted  --这是一个临时表。替换掉操作后,里面存着你要删除的那些数据
go
delete from course where cno=3-245
--deleted是一个临时表,里面存着你要删除的那些数据、

 

SQL Sever 第五堂课:触发器知识。

标签:

原文地址:http://www.cnblogs.com/275147378abc/p/4465638.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!