当前位置: 代码迷 >> SQL >> sqlserver 2008 视图 目录创建
  详细解决方案

sqlserver 2008 视图 目录创建

热度:468   发布时间:2016-05-05 14:34:39.0
sqlserver 2008 视图 索引创建
标题: Microsoft SQL Server Management Studio------------------------------创建 对于 索引“ddd”失败。  (Microsoft.SqlServer.Smo)有关帮助信息,请单击: http://go.microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&ProdVer=10.50.1600.1+((KJ_RTM).100402-1540+)&EvtSrc=Microsoft.SqlServer.Management.Smo.ExceptionTemplates.FailedOperationExceptionText&EvtID=创建+Index&LinkId=20476------------------------------其他信息:执行 Transact-SQL 语句或批处理时发生了异常。 (Microsoft.SqlServer.ConnectionInfo)------------------------------无法对视图 'visit_channel_doc' 创建 索引,因为该视图未绑定到架构。 (Microsoft SQL Server,错误: 1939)有关帮助信息,请单击: http://go.microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&ProdVer=10.50.1600&EvtSrc=MSSQLServer&EvtID=1939&LinkId=20476

?

?

????? sqlserver 2008 视图索引创建 在设计视图创建的话 默认 绑定到架构为否,TOP规范为是,这样再创建视图索引时就会出现视图未绑定到架构的错误信息,所以要在属性窗口改下 绑定到架构为是,TOP规范为否,还有就是count函数要变为COUNT_BIG函数;

?

记着创建唯一聚集索引 好处大大滴(联机丛书上有解说嘿嘿...)

?

视图中的 SELECT 语句不能包含下列 Transact-SQL 语法元素:指定列的 * 或 table_name.* 语法。必须明确给出列名。不能在多个视图列中指定用作简单表达式的表列名。如果对列的所有(或除了一个引用之外的所有)引用是复杂表达式的一部分或是函数的一个参数,则可以多次引用该列。例如,下面的 SELECT 列表无效: 复制代码 SELECT ColumnA, ColumnB, ColumnA 下面的 SELECT 列表有效: 复制代码 SELECT SUM(ColumnA) AS SumColA, ColumnA % ColumnB AS ModuloColAColB, COUNT_BIG(*) AS cBig FROM dbo.T1 GROUP BY ModuloColAColB 在 GROUP BY 子句中使用的列的表达式或基于聚合结果的表达式。派生表。公用表表达式 (CTE)。行集函数。UNION、EXCEPT 或 INTERSECT 运算符。子查询。外联接或自联接。TOP 子句。ORDER BY 子句。DISTINCT 关键字。COUNT(*)(允许 COUNT_BIG(*)。)AVG、MAX、MIN、STDEV、STDEVP、VAR 或 VARP 聚合函数。如果在引用索引视图的查询中指定了 AVG(expression),则当视图 SELECT 列表中包含 SUM(expression) 和 COUNT_BIG(expression) 时,优化器可经常计算所需结果。例如,索引视图 SELECT 列表不能包含表达式 AVG(column1)。如果视图 SELECT 列表包含表达式 SUM(column1) 和 COUNT_BIG(column1),则 SQL Server 可以计算引用视图并指定 AVG(column1) 的查询的平均数。引用可为空表达式的 SUM 函数。包括排名或聚合开窗函数的 OVER 子句。CLR 用户定义聚合函数。全文谓词 CONTAINS 或 FREETEXT。COMPUTE 或 COMPUTE BY 子句。CROSS APPLY 或 OUTER APPLY 运算符。PIVOT 或 UNPIVOT 运算符。表提示(仅应用于 90 或更高的兼容级别)。联接提示。对 Xquery 表达式的直接引用。可以接受间接引用,例如位于绑定到架构的、用户定义的函数内部的 Xquery 表达式。如果指定了 GROUP BY,则视图选择列表必须包含 COUNT_BIG(*) 表达式,且视图定义不能指定 HAVING、ROLLUP、CUBE 或 GROUPING SETS。

?

详细可参考sqlserver联机丛书中的“创建索引视图 ”内容

  相关解决方案