• 创建视图索引


    创建视图索引需要注意哪些事项

    1、创建索引时提示该视图未绑定到架构(创建视图时加上schemabinding关键字则不能*号存在索引中)

         解决方法:在创建视图的时候加上schemabinding

         例句:CREATE VIEW [dbo].[viewTable] with schemabinding AS select ID from .....

    2、加上schemabinding建立索引的时候又提示必须先创建唯一聚集索引

        解决方法: 在创建视图时加上UNIQUE  CLUSTERED

        例句: CREATE UNIQUE  CLUSTERED index ix_ccount on [viewTable](ID)

    3、 如果视图包含一个Group By子句,那么在创建视图的时候select语句中必须包含count_big(*)

         错误信息:无法在视图 'viewTable' 上创建索引,因为该视图的定义中不包括 count_big(*)。

        解决方法:SELECT COUNT_BIG(*) num......

    4、视图不能包含一个外部链接或自链接,也就是说在链接表时只能使用INNER JOIN并且INNER JOIN前后不能使同一个表,不能使用LEFT(RIGHT) JOIN 或者 LEFT (RIGHT) OUTER JOIN ;  

        错误信息:无法 index 视图 'KF_BJKQ.dbo.ViewYXHolidayTotal'。它包含一个或多个不允许使用的构造。

        解决方法:把left join 改成inner join

    5、视图不允许使用某些集合函数,如:Count(*)可以使用count_big(*)代替、avg()、max()、min()、stdev()、stdevp()、var()或varp()等;

        错误信息:无法在视图 'ViewYXHolidayTotal' 上创建索引,因为该视图的定义中包括未知值(可为空表达式的求和)。

        解决方法:在创建视图的时候把包含上面的函数去掉即可

    6、F.视图不能包含UNION子句、TOP子句、ORDER BY子句、Having子句、Rollup子句、Cube子句、compute子句、Compute By子句或Distinct关键字; 

    7、视图不能使用select * 这样的语句,所有字段都必须显示指定

     

     

  • 相关阅读:
    一分钟明确 VS manifest 原理
    关于“鸡脚神”的看法
    Android中Context具体解释 ---- 你所不知道的Context
    解决android3.0版本号以上应用接收不到开机广播问题
    什么是流利语法Fluent Syntax
    vi 命令 使用方法
    TinyXml高速入门(一)
    reactor设计模式
    ActivityGroup+LinearLayout实现iphone风格的底部tab菜单
    使用ActivityGroup来切换Activity和Layout
  • 原文地址:https://www.cnblogs.com/starts/p/5284023.html
Copyright © 2020-2023  润新知