• 无法对视图创建索引,因为该视图未绑定到架构


    遇到这个问题,查了一位博主的文章,但是说的不是很详细,在这里说明白一些。

    修改此问题 需要在 创建视图语句中加上 with SCHEMABINDING

    --创建索引视图 create view 视图名 with schemabinding as select 语句 go

    --创建索引视图需要注意的几点

    --创建索引视图
    create view 视图名 with schemabinding 
    as
    select 语句
    go
    
    ---创建索引视图需要注意的几点
    1. 创建索引视图的时候需要指定表所属的架构
    --错误写法
    create view v_f with schemabinding 
    as
    select
       a.a,a.b,b.a,b.b
    from
       a join b 
    on
       a.id=b.id
    go
    
    ---正确写法:
    create view v_f with schemabinding 
    as
    select
       a.a,a.b,b.a,b.b
    from
       dbo.a join dbo.b 
    on
       a.id=b.id
    go
    
    
    2.在创建索引视图的select语句时,不使用*,必须指定具体的列名
    --错误写法
    create view v_f with schemabinding 
    as
    select
       *
    from
       dbo.a join dbo.b 
    on
       a.id=b.id
    go
    
    ---正确写法
    create view v_f with schemabinding 
    as
    select
       a.a,a.b,b.a,b.b
    from
       dbo.a join dbo.b 
    on
       a.id=b.id
    go
    
    3.在创建索引视图的select 语句中,不能存在重复的列名,这个不举例了
    
    4. 只能为索引视图创建唯一聚集索引
    --正确的写法
    create unique clustered index ix_uniquetb on v_tb
    go
    
    --错误的写法 
    create clustered index ix_uniquetb on v_tb
    go
  • 相关阅读:
    算法导论
    深度探索C++对象模型
    git 介绍及其使用总结
    前端跨域常见的几种方式
    前端面试angular 常问问题总结
    低版本浏览器支持HTML5标签的方法
    理解 angular 的路由功能
    Angular 新手容易碰到的坑
    Angular 新手容易碰到的坑
    一 Unicode和UTF-8的异同
  • 原文地址:https://www.cnblogs.com/aimqqroad-13/p/4984996.html
Copyright © 2020-2023  润新知