对索引视图创建索引出错误,求帮忙解答问题

chaozhou 2011-12-21 05:34:04
创建了一个索引视图,视图包含两列,A1列是ntext类型,A2列是datetime类型,索引视图创建成功后,
想再A2列的索引:create unique clustered index id_v_A2 on 视图(A2);
但是老是提示下面错误:
无法对视图 '......' 创建 索引。它包含 text、ntext、image 或 xml 列

问为什么?A2列是datetime类型,不是ntext类型,怎么不行啊?是不是视图里头其它列包含ntext类型后,其它列不是ntext类型也创建不了索引啊?
...全文
176 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
--小F-- 2011-12-21
  • 打赏
  • 举报
回复
---索引视图

索引视图是具体化的视图

--创建索引视图
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
chaozhou 2011-12-21
  • 打赏
  • 举报
回复
高手出来帮忙啊?谢谢了。

我的表列已经创建ntext类型,并且表数据记录已有几十万了,现在修改记录老是有问题啊?就是超时啊,改不了。

请高手帮个大忙,两个情况选择
(1)就是上面的视图有什么办法绕道创建索引?
(2)如果实在不能创建索引,那么我想改ntext为nvarchar类型,但是记录太多了,老是超时,有什么办法解决超时问题?谢谢了。
chaozhou 2011-12-21
  • 打赏
  • 举报
回复
create table t
(
a1 ntext;
a2 datetime
a3 varchar(50)
);创建成功
create view v with schemabinding as
(
select convert(varchar(1024),a1) as a1,a2 from dbo.t
);创建成功

create unique clustered index id_t_a2 on v(a2);失败


问有什么办法解决,谢谢了。
chaozhou 2011-12-21
  • 打赏
  • 举报
回复
试了,结果视图能创建,但是索引依然无法创建,同样错误啊。
_0筱筱0_ 2011-12-21
  • 打赏
  • 举报
回复
CONVERT(VARCHAR(50),列名)
chaozhou 2011-12-21
  • 打赏
  • 举报
回复
再问:
假如按照kuqideyupian说的不行,
那么我表是ntext行,
但是我视图substring(ntext)一部分出来行吗?
如果行,在视图里,怎样把substring(ntext)转成nvarchar啊?
谢谢指导了。
_0筱筱0_ 2011-12-21
  • 打赏
  • 举报
回复
表的聚集索引上也不能用NTEXT吧
chaozhou 2011-12-21
  • 打赏
  • 举报
回复
晕倒,那表怎么行啊?
假如我上面的视图是表,他就行啊。
_0筱筱0_ 2011-12-21
  • 打赏
  • 举报
回复
当然不行,其它列是要作为索引项存在叶子节点中的,当然不能太大
本书全面介绍了Lotus Notes R5中文版的操作和使用。共分24学时进行讲解,是自学和培训的优秀教程。它既适合初学者学习,也可以作为高级操作人员的参考书。 本书主要包括以下方面的内容:创建和发送电子邮件;使用Lotus Notes R5客户端程序漫游Web;把Notes带到路途上或在家中使用;在Lotus Notes R5的客户端中搜索和保存;管理日历项和任务;使用群组日历和安排计划;复制数据库;操作附件;自定义Notes客户端。 目 录 前言 第1学时 Notes起步 1 1.1 Lotus Notes和Domino概述 1 1.2 了解Notes的安全性 1 1.3 启动Notes 2 1.4 漫游Notes R5 客户程序 5 1.5 打开菜单并选择命令 7 1.6 查看便捷图标 8 1.7 使用对话框和属性框 9 1.8 修改口令 11 1.9 锁定标识符 12 1.10 退Notes 12 1.11 学时小结 13 1.12 专家答疑 13 第2学时 操作数据库 14 2.1 阅读和使用文档 14 2.2 操作视图 15 2.3 刷新视图 17 2.4 查看状态栏 17 2.5 获得Notes帮助 18 2.6 打开新的数据库并添加书签 20 2.7 本地与服务器的对比 21 2.8 查看数据库属性 22 2.9 删除数据库 22 2.10 学时小结 23 2.11 专家答疑 23 第3学时 阅读邮件 24 3.1 打开邮件收件箱 24 3.1.1 使用导航面板 25 3.1.2 使用视图面板 26 3.1.3 使用活动栏 26 3.2 选择和标记邮件 27 3.3 阅读和预览邮件 27 3.3.1 了解阅读书签 28 3.3.2 使用预览窗格 28 3.4 学时小结 30 3.5 专家答疑 30 第4学时 创建、拼写检查和发送邮件 31 4.1 创建邮件 31 4.2 添加邮件地址 32 4.2.1 使用自动查找 34 4.2.2 了解Internet邮件地址 35 4.3 键入及拼写检查邮件 36 4.4 发送邮件 38 4.5 选择邮递选项 39 4.6 回信 41 4.7 转发邮件 42 4.8 学时小结 43 4.9 专家答疑 43 第5学时 管理邮件 44 5.1 打印邮件 44 5.2 邮件礼节 45 5.3 漫游邮件 46 5.4 控制未读的标记 46 5.5 排序邮件 47 5.6 删除和恢复删除的邮件 47 5.7 使用文件夹 49 5.7.1 创建文件夹 49 5.7.2 在文件夹中保存邮件 50 5.7.3 从文件夹中删除邮件 50 5.8 使用Notes Minder 51 5.9 归档邮件 52 5.10 压缩邮件 53 5.11 学时小结 53 5.12 专家答疑 54 第6学时 优化邮件 55 6.1 选择信头 55 6.2 创建信笺 56 6.3 操作定则 57 6.4 使用离开办公室通知 59 6.5 创建链接消息 62 6.6 生成电话消息 62 6.7 设置代替便笺编辑器 63 6.8 指定邮件惯用选项 64 6.8.1 设置邮件使用权限 64 6.8.2 如果你有访问权,就能够打开 别人的邮件 65 6.8.3 在邮件上添加签名 65 6.8.4 设置其他邮件惯用选项 66 6.8.5 设置影响邮件的Notes惯用选项 67 6.9 学时小结 68 6.10 专家答疑 69 第7学时 使用日历 70 7.1 选择日历视图 70 7.2 了解日历项的类型 72 7.3 进入约会 73 7.4 创建提示 76 7.5 创建纪念日 78 7.6 生成事件 78 7.7 添加待办事宜 79 7.8 用Actioneer 制作项目 81 7.9 学时小结 82 7.10 专家答疑 82 第8学时 管理日历项和任务 84 8.1 编辑日历项 84 8.2 转换日历项 85 8.3 管理任务 85 8.3.1 对任务的响应 86 8.3.2 转换待办事宜 87 8.3.3 分配任务 87 8.3.4 查看任务状态 91 8.3.5 标记完成的任务 91 8.4 添加节假日 91 8.5 打印日历 92 8.6 查看其他人的日历 92 8.7 设置日历惯用选项 93

34,837

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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