利用Transact-SQL语句中的CREATE VIEW命令创建视图:

 

使用Transact-SQL语句中的CREATE VIEW创建视图的语法形式如下:

CREATE VIEW [ < database_name > .] [ < owner > .] view_name [ ( column [ ,...n ] ) ]

[ WITH < view_attribute > [ ,...n ] ]

AS

select_statement

[ WITH CHECK OPTION ]

< view_attribute > ::=

    { ENCRYPTION | SCHEMABINDING | VIEW_METADATA }

 

使用Transact-SQL语句中的CREATE VIEW创建视图的参数说明如下:

 

view_name用于指定视图的名称,column用于指定视图中的字段名称。

WITH ENCRYPTION表示 SQL Server 加密包含 CREATE VIEW 语句文本在内的系统表列。

select_statement用于创建视图的SELECT语句,利用SELECT命令可以从表中或者视图中选择列构成新视图

 

的列。

WITH CHECK OPTION用于强制视图上执行的所有数据修改语句都必须符合由 select_statement 设置的准

 

则。

 

SCHEMABINDING表示在select_statement语句中如果包含表、视图或者引用用户自定义函数,则表名、视

 

图名或者函数名前必须有所有者前缀。

VIEW_ METADATA表示如果某一查询中引用该视图且要求返回浏览模式的元数据时,那么SQL Server将向

 

DBLIBOLE DB APIS返回视图的元数据信息。

 

 

例子

 

选择表studentteacher中的部分字段和记录创建视图,并且限制表student中的记录只能是名称为“张

 

三”的记录集合,视图定义为view_part,其程序清单如下:

create view view_part

as

Select student.name,

student.age,student.sex,

teacher.name,age,salary

from

student,teacher

where student.name=’张三’

可以使用系统存储过程sp_rename修改视图的名称,该过程的语法形式如下:

sp_rename old_name,new_name

例子5-14:把视图v_all重命名为v_part,其程序清单如下:

sp_rename v_all,v_part

 

使用Transact-SQL语句DROP VIEW删除视图的语法形式如下:

DROP VIEW {view_name} [,…n]

可以使用该命令同时删除多个视图,只需在要删除的视图名称之间用逗号隔开即可。

例子5-15:同时删除视图v_studentv_teacher,其程序清单如下:

drop view v_student,v_teacher

 

通过视图修改记录 :

 

使用视图修改数据时,需要注意以下几点:

修改视图中的数据时,不能同时修改两个或者多个基表,可以对基于两个或多个基表或者视图的视图进行

 

修改,但是每次修改都只能影响一个基表。

不能修改那些通过计算得到的字段。

如果在创建视图时指定了WITH CHECK OPTION选项,那么所有使用视图修改数据库信息时,必须保证修改

 

后的数据满足视图定义的范围。

执行UPDATEDELETE命令时,所删除与更新的数据必须包含在视图的结果集中。

如果视图引用多个表时,无法用DELETE命令删除数据。

 

插入数据记录 :

 

例子5-16:首先创建了一个新的视图v_employees,该视图基于表employees创建。

create view v_employees(number, name, age, sex, salary)

as

select number, name, age, sex, salary

from employees

where name=’张三’

然后,通过执行以下语句使用该视图向表employees中添加一条新的数据记录。

Insert into v_employees

Values(001,’李力’,22,m,2000)

 

更新数据记录

 

使用视图可以更新数据记录,但应该注意的是,更新的只是数据库中的基表。

例子5-19:创建了一个基于表employees的视图v_employees,然后通过该视图修改表employees中的记录

 

。其程序清单如下:

create view v_employees

as

select * from employees

update v_employees

set name=’张然’

where name=’张三’

 

 

删除数据记录

 

使用视图删除记录,可以删除任何基表中的记录,直接利用DELETE语句删除记录即可。但应该注意,必须

 

指定在视图中定义过的字段来删除记录。

例子5-20:利用视图v_employees删除表employees中姓名为张然的记录。其程序清单为:

delete from v_employees

where name=’张然’
posted on 2007-04-11 15:48  .NET初学者俱乐部  阅读(335)  评论(0)    收藏  举报


 
Asp.net 初学者零起点从入门到精通