SqlServer2008实例36视图之创建基本视图

使用CREATE VI刚命令来创建视图。语法如下:

CREATE VIEW [ schema_name . ] view_name [ (column [ ,...n ] ) ]
[ WITH  [ ENCRYPTION ]  [ SCHEMABINDING ] [ VIEW_METADATA ] [ ,...n ] ]
AS select_statement
[ WITH CHECK OPTION ]

       CREATE VIEW参数

参  数描  述
[ schema_name . ] view_name这个参数指定新视图的架构和名字
 (column [ ,...n ] ) 给视图使用的可选的列名列表。如果没有指定,会使用在SELECT查询中使用的名字(除非没有指定列的名称,而且这样会产生错误)
ENCRYPTION加密系统表中的T-SQL视图定义,这样,如果没有保存原始CREATE VIEW命令的副本则不能看到这个定义
SCHEMABINDINGSCHEMABINDING将视图绑定到底层袤的架构上,限制基础表中任何会影响视图定义的修改操作
VIEW METADATA如果指定了,则API访问有关视图信息的时候会看到视图的信息而不是基础表的元数据
select_statement这个参数指定了用于返同视图的行或列的SELECT查询

    SELECT语句允许一个视图定义最多1024个列。然而,不可以在视图定义中使用某些SELECT元素,包括INTO、OPTION、COMPUTE、COMPUTE BY或者对表变量或临时表的引用。除非使用了TOP关键字,否则你也不可以使用ORDER BY。
      创建一个从Production.TransactionHistory和Production.Product表中访问数据的视图:

USE AdventureWorks
GO

CREATE VIEW dbo.v_Product_TransactionHistory
AS
SELECT p.Name ProductName,
	   p.ProductNumber,
	   c.Name ProductCategory,
	   s.Name ProductSubCategory,
	   m.Name ProductModel,
	   t.TransactionID,
	   t.ReferenceOrderID,
	   t.ReferenceOrderLineID,
	   t.TransactionDate,
	   t.TransactionType,
	   t.Quantity,
	   t.ActualCost
FROM Production.TransactionHistory t
INNER JOIN Production.Product p ON
	t.ProductID=p.ProductID
INNER JOIN Production.ProductModel m ON
	m.ProductModelID=p.ProductModelID
INNER JOIN Production.ProductSubcategory s ON
	s.ProductSubcategoryID=p.ProductSubcategoryID
INNER JOIN Production.ProductCategory c ON
	c.ProductCategoryID=s.ProductCategoryID
WHERE c.Name='Bikes'
GO

查询新的视图,根据产品名和产品类型显示产品的交易记录:

USE AdventureWorks
GO

SELECT ProductName,ProductModel,ReferenceOrderID,ActualCost
FROM dbo.v_Product_TransactionHistory
ORDER BY ProductName

©️2020 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页