首页 > 解决方案 > 如何在 Sql server 中正确索引计算的 json 列?

问题描述

我已按照 Microsoft here中关于如何索引 json 字段的指南进行操作。

这是一个例子:

ALTER TABLE Sales.SalesOrderHeader
ADD vCustomerName AS JSON_VALUE(Info,'$.Customer.Name')

CREATE INDEX idx_soh_json_CustomerName
ON Sales.SalesOrderHeader(vCustomerName)

我有 2 个计算列(我认为应该没关系),然后我收到此警告:

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

这似乎是合法的,因为 JSON_VALUE 返回 nvarchar(4000),因此最大值为 16000 字节。有什么需要做的吗?

例如,在计算期间转换为 nvarchar(50)?

标签: jsonsql-serverindexingnvarchar

解决方案


推荐阅读