34,838
社区成员




--1、
create table tb (id varchar(10))
insert tb
select '1' union all
select '10' union all
select '40'
--2、
create function dbo.f_1 (@a varchar(10))
returns int
with schemabinding
as
begin
return convert(int,@a)
end
--3、
create view v_tb1 with schemabinding
as
select dbo.f_1(id) as c from dbo.tb
go
--4、
create unique clustered index ix_tb1 on v_tb1(c)
.在创建索引视图的select语句时,不使用*,必须指定具体的列名
--错误写法
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
---正确写法
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
---索引视图
索引视图是具体化的视图
--创建索引视图
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
*
from
dbo.a join dbo.b
on
a.id=b.id
go
2.在创建索引视图的select语句时,不使用*,必须指定具体的列名
--错误写法
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
---正确写法
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