我收到的错误是:
"索引的长度为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)
我不知道这是什么问题。我得到同样的错误。
答案 0 :(得分:1)
Based on SQL Server documentation,nvarchar(450)
应该有用。
我觉得“904”令人困惑。 nvarchar(450)
的实际大小为902字节(请参阅here)。毫无疑问,额外的两个字节来自某个地方。
因此,您应该可以使用nvarchar(448)
来解决此问题。
如果无法做到这一点,您可以添加另一列和索引:
alter t add exblist448 as (left(exblist, 1, 448))
然后将其编入索引。
所有这一切,我认为这不会解决您的真正的问题。我不明白为什么需要450字符串的索引。我也不明白为什么列名称会包含“list”。
我强烈怀疑你真的需要一个第二个表,每个列表项和公司有一行。或者,您需要一个全文索引。