1
数据库技术及应用
1.10.1.3 7.1.3 用Transact-SQL创建视图
7.1.3 用Transact-SQL创建视图

在TransacT-SQL(T-SQL)中用于创建视图的语句是CREATEVIEW语句,例如,用该语句创建计算机工程系学生的视图STU_VIEW,其表示形式为:

语法格式:

参数说明如下:

●schema_name:视图所属架构的名称。

●view_name:视图的名称。视图名称必须符合有关标识符的规则。可以选择是否指定视图所有者名称。

●column:视图中的列使用的名称。仅在下列情况下需要列名:列是从算术表达式、函数或常量派生的;两个或更多的列可能会具有相同的名称(通常是由于连接的原因);视图中的某个列的指定名称不同于其派生来源列的名称。还可以在SELECT语句中分配列名。如果未指定column,则视图列将获得与SELECT语句中的列相同的名称。

●WITH<view_attribute>:指出视图的属性。view_attribute可取以下值:

ENCRYPTION:表示在系统表syscomments中存储CREATEVIEW语句时进行加密。

SCHEMABINDING:表示将视图与其所依赖的表或视图结构相关联。

VIEW_METADATA:指定为引用视图的查询请求浏览模式的元数据时,向DBLIB,ODBC或OLEDBAPI返回有关视图的元数据信息,而不是返回给基本表或其他表。

●AS:指定视图要执行的操作。

●select_statement:定义视图的SELECT语句。该语句可以使用多个表和其他视图。

●CHECKOPTION:指定在视图执行的所有数据修改语句都必须符合在select_statement中设置的条件。例如,对于STU_VIEW视图,只能修改除“Dname”字段以外的字段值,而不能把所在系的值改为“计算机工程系”以外的值。

【例7-1】创建成绩视图stu_sc_view,包括系编号为“D001”(计算机工程系)学生的Sid、Sname、Cid、Grade等字段信息。要保证对该视图的修改都要符合所在系编号为“D001”这个条件。代码如下:

注意:CREATEVIEW必须是批命令的第一条语句。SELECT语句中不能使用ORDERBY、INTO等子句。