包含动态字段或数组的JSON上的SQL Server索引

时间:2017-10-04 15:23:52

标签: sql-server sql-server-json

我们有一个AuditEntity表,其中存储了所有更改。 该表有一个OldValues和NewValues列,其中包含已更改字段的json。

enter image description here

我想查询此表,以便它为我提供修改特定字段的所有行,例如字段'projectName'。 如何以字段名称搜索编制索引的有效方式执行此操作?

SELECT * FROM AuditEntity
WHERE EntityName = 'Project'
  AND EntityId = 100
  AND ChangeType = 'Modified'
  AND ??NewValues contains the field 'projectName'??

我知道我们可以在计算的json属性上定义索引,但这里的json包含动态字段名称。

或者用一个具有以下结构的单个json字段会更好吗?

[
    {fieldName:'projectName', oldValue:'abc', newValue:'abcd'},
    {fieldName:'customerId', oldValue:'1', newValue:2}
]

是否可以在json属性包含数组时对其进行索引?

0 个答案:

没有答案