创建视图索引

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

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 * 这样的语句,所有字段都必须显示指定

 

 

 

 

转载于:https://www.cnblogs.com/starts/p/5284023.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值