SQL Server 2008 学习笔记(三)视图的创建与修改

时间:2022-03-05 00:57:19

2015.7.31晚上

视图可以将多个表中的列联接起来,使它们看起来象一个表,但这个表却不会占用你的存储空间。
视图还可以用作跨表及跨域,在两台数据库之间做桥梁链接的作用,毕竟完全开启数据库的权限是不安全的,如果只开放给另一台数据库中的用户创建视图的权限,就能避免此类问题。用户也能方便的查询另一台数据库的数据。非常方便和安全

创建普通视图

创建一个名称为View_Class的简单视图,该视图由t_table1和t_table2两个基础表组成,用于查询所有学生的成绩信息,其具体实现的代码如下:

create view View_Class
as
select dbo.t_table1.id,dbo.t_table1.name,dbo.t_table2.id,dbo.t_table2.name
from dbo.t_table1,dbo.t_table2
where dbo.t_table1.id = dbo.t_table2.id
go

创建加密视图

创建一个名称为View_Class_psd的加密视图,在第一行的create的下面加上with encryption,如以下代码:

create view View_Class
with encryption
as
select dbo.t_table1.id,dbo.t_table1.name,dbo.t_table2.id,dbo.t_table2.name
from dbo.t_table1,dbo.t_table2
where dbo.t_table1.id = dbo.t_table2.id
go

修改视图

我理解的修改视图实际上就是把create改成alter就可以了,然后下面加上修改后视图的内容。如下代码为将原table1中的name改为了address

alter view View_Class
as
select dbo.t_table1.id,dbo.t_table1.address,dbo.t_table2.id,dbo.t_table2.name
from dbo.t_table1,dbo.t_table2
where dbo.t_table1.id = dbo.t_table2.id
go

删除视图

删除视图需要进行的语句:

go
if object_id('View_Class','view') is not null
drop view View_Class
go