码迷,mamicode.com
首页 > 其他好文 > 详细

2014-12-04 视图、触发器

时间:2014-12-04 19:49:20      阅读:152      评论:0      收藏:0      [点我收藏+]

标签:style   ar   color   使用   sp   for   strong   on   数据   

视图:把一个查询结果集当作表

例:select * from (select * from score,grade where score.degree between low and upp) as jieguotable

     where rank=‘A‘

    as 后面的作为一个虚拟的表

create view shitu1

as

select * from student,score where student.sno=score.sno

go

as 和 go 之间实际为表连接,表里的列不能重合

视图只能查询使用,不能增删数据,相当于存了一条数据进去   

 

触发器:一个特殊的存储过程,通过增删数据库来引发。

鼠标操作:某个数据库→可编程性→数据库触发器

例:create trigger TR_student_Insert   ---(命名规则:TR为触发器,student为哪个表,insert为新增操作时触发)

     on student  ---作用于哪个表

     for insert ------for是新增之后触发,for还可以写成after

     as

     begin

     select * from student

     end

     go

     insert into student values(‘303‘,‘小明‘,‘男‘,‘1992-07-21‘,‘95033‘)

   -----在增加完以上一条数据后,触发查询

 

替换:

create 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)

deleted 为临时删除的内容,包含你将要执行的删除操作的内容

insert为临时增加

 

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-07-21‘,‘95033‘)
select *from student

2014-12-04 视图、触发器

标签:style   ar   color   使用   sp   for   strong   on   数据   

原文地址:http://www.cnblogs.com/jintuo/p/4143544.html

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