無法對視圖創建索引,因為該視圖未綁定到架構


遇到這個問題,查了一位博主的文章,但是說的不是很詳細,在這里說明白一些。

修改此問題 需要在 創建視圖語句中加上 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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM