创建索引视图

wwfxgm 2016-10-17 02:06:00
我想创建索引视图,不过心里没有底,特来请教大神。视图代码如下,

create view TT AS
(
SELECT
B.[班号] AS 班级编号,
A.[班级名称],
A.[学籍号],
A.[民族代码],
A.[姓名],
A.[性别],
A.[出生日期],
A.[测试老师]
FROM
student_SC AS A
LEFT JOIN student_teacher AS B ON A.学籍号 = B.学号
)


像我这样子的视图,能否对 A.[测试老师]字段 创建唯一聚集索引?因为测试老师 这个字段,数据不唯一,所以,我想能否和 学籍号联合起来 创建唯一聚集索引。至于为什么要这样做,因为,平时关键是用测试老师这个字段作为条件来筛选的。
student_SC 表,学籍号是主键。
student_teacher 表,学籍号是主键。
...全文
90 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
中国风 2016-10-17
  • 打赏
  • 举报
回复
引用 7 楼 wwfxgm 的回复:
[quote=引用 5 楼 roy_88 的回复:] 你的结果集是的唯一性列(可多列)作为聚集唯一索引
根据上面的语句,只是对学籍号 创建了索引视图。那么,我平时是根据 测试老师 这个字段作为筛选条件的。 这个即使创建了索引视图,也没有多少效果吧? [/quote] 没问题,再建一个测试老师的索引就行了,唯一聚集索引是必须的
wwfxgm 2016-10-17
  • 打赏
  • 举报
回复
引用 5 楼 roy_88 的回复:
你的结果集是的唯一性列(可多列)作为聚集唯一索引
根据上面的语句,只是对学籍号 创建了索引视图。那么,我平时是根据 测试老师 这个字段作为筛选条件的。 这个即使创建了索引视图,也没有多少效果吧?
xxfvba 2016-10-17
  • 打赏
  • 举报
回复
视图中用到 left join了,不能创建索引了吧
中国风 2016-10-17
  • 打赏
  • 举报
回复
你的结果集是的唯一性列(可多列)作为聚集唯一索引
中国风 2016-10-17
  • 打赏
  • 举报
回复
改为以下方法,LEFT JOIN 是不支持的
CREATE VIEW TT
WITH SCHEMABINDING
AS
    SELECT  B.[班号] AS 班级编号 ,
            A.[班级名称] ,
            A.[学籍号] ,
            A.[民族代码] ,
            A.[姓名] ,
            A.[性别] ,
            A.[出生日期] ,
            A.[测试老师]
    FROM    dbo.student_SC AS A
            INNER  JOIN dbo.student_teacher AS B ON A.学籍号 = B.学号;
GO
CREATE UNIQUE CLUSTERED INDEX IDX_TT ON TT([学籍号]);
中国风 2016-10-17
  • 打赏
  • 举报
回复
你的语句要满足条件 声明加上 with schemabinging 语句表名都加上 dbo.表名 表联机不支持left join/full join 只能用inner join
wwfxgm 2016-10-17
  • 打赏
  • 举报
回复
好吧。架构名还不是关键,我是dbo。 除了架构名以外, 我最关键是搞不清楚 能否联合创建,比如我这里是:学籍号和测试老师两个字段
中国风 2016-10-17
  • 打赏
  • 举报
回复
创建视图索引必须要有唯一性,你的语句架构名必须指定,方法参照MSDN

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧