SQL Server 中非聚集索引的最大键长度解决方法

Mad*_*ist 8 sql t-sql database sql-server

有没有办法增加 SQL Server 中 1700 字节的非聚集索引的限制?当我构建数据库时,我收到此警告:

警告!非聚集索引的最大键长度为 1700 字节。索引“CS_UK”的最大长度为 8000 字节。对于某些大值的组合,插入/更新操作将失败。

或者我是否必须更改索引的结构?

Mad*_*ist 0

解决方法是在创建索引时使用include太大的列。

CREATE NONCLUSTERED INDEX IX_IndexSizeTest_Test3 
ON IndexSizeTest (EMPName,EmpPhoneNumber,EmpPostCode) INCLUDE (EmpAddress) 
Run Code Online (Sandbox Code Playgroud)

当本例中的 EmpAdress 是一个非常大的列时,我们可以将其添加到索引中INCLUDE(EmpAddress),因为这样当涉及到索引限制时,它就不会被计算在内。以下是有关它的更多详细信息。

  • 我否决了你的答案,因为它对我来说看起来不正确。索引的主要目的是快速查找。包含的列不能用于此目的,它们实际上包含在索引有效负载中,并且当需要在查询输出中包含这些列时很有用 (2认同)