+ -
当前位置:首页 → 问答吧 → 对索引视图创建索引出错误,求帮忙解答问题

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

时间:2011-12-21

来源:互联网

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

问为什么?A2列是datetime类型,不是ntext类型,怎么不行啊?是不是视图里头其它列包含ntext类型后,其它列不是ntext类型也创建不了索引啊?

作者: chaozhou   发布时间: 2011-12-21

当然不行,其它列是要作为索引项存在叶子节点中的,当然不能太大

作者: kuqideyupian   发布时间: 2011-12-21

晕倒,那表怎么行啊?
假如我上面的视图是表,他就行啊。

作者: chaozhou   发布时间: 2011-12-21

表的聚集索引上也不能用NTEXT吧

作者: kuqideyupian   发布时间: 2011-12-21

再问:
假如按照kuqideyupian说的不行,
那么我表是ntext行,
但是我视图substring(ntext)一部分出来行吗?
如果行,在视图里,怎样把substring(ntext)转成nvarchar啊?
谢谢指导了。

作者: chaozhou   发布时间: 2011-12-21

CONVERT(VARCHAR(50),列名)

作者: kuqideyupian   发布时间: 2011-12-21

试了,结果视图能创建,但是索引依然无法创建,同样错误啊。

作者: 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

高手出来帮忙啊?谢谢了。

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

请高手帮个大忙,两个情况选择
(1)就是上面的视图有什么办法绕道创建索引?
(2)如果实在不能创建索引,那么我想改ntext为nvarchar类型,但是记录太多了,老是超时,有什么办法解决超时问题?谢谢了。

作者: chaozhou   发布时间: 2011-12-21