视图和内联表值函数(inline TVF)是两种可重用的表表达式,它们的定义储存在一个数据库对象中。一旦创建,这些对象就是数据库的永久部分;只有用删除语句显式删除,它们才会从数据库中移除。
在其他很多方面,视图和内联表值函数的处理方式都类似于派生表和CTE。例如,当查询视图或内联TVF时,SQL Server 会先扩展表表达式的定义,再直接查询底层对象,这与派生表和CTE的处理方式是一样的。
创建视图:
CREATE VIEW Custs
AS
SELECT custid from dbo.Customers
注意:一般推荐在和视力有关的应用上下文中应该避免使用SELECT * 语句。列是在编译视力时进行枚举的,新加的列可能不会自动加到视图中。
可以用一个名为 sp_refreshview 的存储过程可以刷新视图的元数据,但为避免混淆,最好的开发实践就是在视力的定义中显式地列出需要的列名。如果在底层表中添加了列,而且在视图中需要这些新加的列,则可以使用 ALTER VIEW 语句对视图定义进行相应的修改。