如何解决错误"索引' IX_companyinfo_exhibition'的长度为904字节的索引条目超过最大长度900字节。"

时间:2018-02-22 11:42:58

标签: c# sql sql-server

我收到的错误是:

  

"索引的长度为904字节的索引条目&IXAcompanyinfo_exhibition'超过最大长度900字节"。

exblist nvarchar(600),我将其更改为nvarchar(450)。我删除了索引,即。IX_companyinfo_exhibition

我尝试了所有东西。我用过这个:

CREATE NONCLUSTERED INDEX IX_companyinfo_exhibition ON dbo.companyinfo(exblist) include(companyname,website,country,contactperson,telphone)

我不知道这是什么问题。我得到同样的错误。

enter image description here

enter image description here

SP_helpindex for table companyinfo

1 个答案:

答案 0 :(得分:1)

Based on SQL Server documentationnvarchar(450)应该有用。

我觉得“904”令人困惑。 nvarchar(450)的实际大小为902字节(请参阅here)。毫无疑问,额外的两个字节来自某个地方。

因此,您应该可以使用nvarchar(448)来解决此问题。

如果无法做到这一点,您可以添加另一列和索引:

alter t add exblist448 as (left(exblist, 1, 448))

然后将其编入索引。

所有这一切,我认为这不会解决您的真正的问题。我不明白为什么需要450字符串的索引。我也不明白为什么列名称会包含“list”。

我强烈怀疑你真的需要一个第二个表,每个列表项和公司有一行。或者,您需要一个全文索引。