; 必须已使用 SCHEMABINDING 选项创建了视图引用的用户定义函数。
表和用户定义函数必须由视图中由两部分组成的名称引用。不允许由一部分、三部分和四部分组成的名称引用它们。
视图中的表达式引用的所有函数必须是确定的。
如果视图定义使用聚合函数,SELECT 列表还必须包括 COUNT_BIG (*)。
用户定义函数的数据访问属性必须为 NO SQL,外部访问属性必须是 NO
公共语言运行时 (CLR) 功能可以出现在视图的选择列表中,但不能作为聚集索引键定义的一部分。CLR 函数不能出现在视图的 WHERE 子句中或视图中的 JOIN 运算的 ON 子句中。
视图中的 SELECT 语句不能包含下列 Transact-SQL 语法元素:
指定列的 * 或 table_name.* 语法。必须明确给出列名。
不能在多个视图列中指定用作简单表达式的表列名。如果对列的所有(或除了一个引用之外的所有)引用是复杂表达式的一部分或是函数的一个参数,则可以多次引用该列。
派生表。
公用表表达式 (CTE)。
行集函数
UNION、EXCEPT 或 INTERSECT 运算符
子查询
外联接或自联接
TOP 子句
ORDER BY 子句
DISTINCT 关键字
COUNT(*)(允许 COUNT_BIG(*)。)
AVG、MAX、MIN、STDEV、STDEVP、VAR 或 VARP 聚合函数。
引用可为空表达式的 SUM 函数。
包括排名或聚合窗口函数的 OVER 子句。
CLR 用户定义聚合函数。
全文谓词 CONTAINS 或 FREETEXT。
COMPUTE 或 COMPUTE BY 子句。
CROSS APPLY 或 OUTER APPLY 运算符。
PIVOT 或 UNPIVOT 运算符。
表提示(仅应用于 90 或更高的兼容级别)。
联接提示。
对 Xquery 表达式的直接引用
指定 GROUP BY 后,视图 SELECT 列表必须包含 COUNT_BIG(*) 表达式,并且视图定义不能指定 HAVING、CUBE 或 ROLLUP。
4、创建分区视图。
分区视图在一台或多台服务器间水平连接一组成员表中的分区数据,使数据看起来就像来自一个表。
--建立
链接服务器
exec sp_addlinkedserver @srvproduct=N'''',@server=''LocalServer'',@provider=''MSDASQL'',@provstr=''driver={SQL SERVER};server=192.168.1.253;uid=sa;pwd=123''
--建立链接服务器登录映射
exec sp_addlinkedsrvlogin @rmtsrvname=''LocalServer'',@useself=''false'',@locallogin=''sa'',@rmtuser=''sa'',@rmtpassword=''123''
go
--创建分区查询
Create View DistributVIew
as
select * from [LocalServer].TEST.dbo.[A]
union all
select * from A
六、视图使用示例
1、使用视图
select * from Product_Name
2、通过视图修改数据
update Product_Name set CateID=5 where ID=60
3、通过视图删除数据
delete from Product_Name where ID=61