Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何对数组中的数组使用JSON_MODIFY_Json_Sql Server_Tsql - Fatal编程技术网

如何对数组中的数组使用JSON_MODIFY

如何对数组中的数组使用JSON_MODIFY,json,sql-server,tsql,Json,Sql Server,Tsql,这是我的Json字符串: { "JobID":1005, "ItemID":2, "Prefix":"CC", "Version":1, "ItemTypeID":4, "ItemType":"Change Control", "StageID":3, "StageName":"Change Control Closure", "WorkflowID":1, "WorkflowName":"Change Control Workfl

这是我的Json字符串:

{  
   "JobID":1005,
   "ItemID":2,
   "Prefix":"CC",
   "Version":1,
   "ItemTypeID":4,
   "ItemType":"Change Control",
   "StageID":3,
   "StageName":"Change Control Closure",
   "WorkflowID":1,
   "WorkflowName":"Change Control Workflow",
   "JobStatus":0,
   "IsJobArchived":false,
   "IsJobCanceled":false,
   "IsJobOnHold":false,
   "IsJobPhasedOut":false,
   "RelationID":0,
   "JobLastUpdatedBy":"G4Admin",
   "JobStartDate":"2019-07-18T08:02:44.737718Z",
   "JobLastUpdated":"2019-07-18T08:02:44.9857249Z",
   "JobDueDate":"2019-07-23T08:02:44.8997205Z",
   "JobEstimatedDate":"2019-07-23T08:02:44.8877188Z",
   "JobCompletedDate":null,
   "RevisionNumber":1,
   "DocketNo":390,
   "JobVariance":"0",
   "Mappings":[  

   ],
   "Groups":[  
      12
   ],
   "InactiveGroups":null,
   "Attributes":[  
      {  
         "ID":22,
         "Name":"WorkflowType",
         "Value":"50",
         "DataType":"Text",
         "IsMaster":true,
         "ItemData":true,
         "IsUserGroup":false,
         "GroupId":null,
         "ValueString":"Change Control",
         "InactiveValue":null,
         "InactiveValueString":null
      },
      {  
         "ID":18,
         "Name":"Reason for change",
         "Value":"23",
         "DataType":"Text",
         "IsMaster":true,
         "ItemData":true,
         "IsUserGroup":false,
         "GroupId":null,
         "ValueString":"CMC change",
         "InactiveValue":null,
         "InactiveValueString":null
      },
      {  
         "ID":12,
         "Name":"Market",
         "Value":"12",
         "DataType":"Text",
         "IsMaster":true,
         "ItemData":true,
         "IsUserGroup":true,
         "GroupId":null,
         "ValueString":"Ireland",
         "InactiveValue":null,
         "InactiveValueString":null
      },
      {  
         "ID":14,
         "Name":"Product Name",
         "Value":"34",
         "DataType":"Text",
         "IsMaster":true,
         "ItemData":true,
         "IsUserGroup":false,
         "GroupId":null,
         "ValueString":"DROXIA",
         "InactiveValue":null,
         "InactiveValueString":null
      },
      {  
         "ID":13,
         "Name":"CCDS Impacted?",
         "Value":"15",
         "DataType":"Text",
         "IsMaster":true,
         "ItemData":true,
         "IsUserGroup":false,
         "GroupId":null,
         "ValueString":"No",
         "InactiveValue":null,
         "InactiveValueString":null
      },
      {  
         "ID":11,
         "Name":"JobOwner",
         "Value":"G4Admin",
         "DataType":"Text",
         "IsMaster":false,
         "ItemData":true,
         "IsUserGroup":false,
         "GroupId":null,
         "ValueString":"G4Admin",
         "InactiveValue":null,
         "InactiveValueString":null
      },
      {  
         "ID":50,
         "Name":"PartNumber",
         "Value":"CC-02-01",
         "DataType":0,
         "IsMaster":false,
         "ItemData":false,
         "IsUserGroup":false,
         "GroupId":null,
         "ValueString":"CC-02-01",
         "InactiveValue":null,
         "InactiveValueString":null
      },
      {  
         "ID":50,
         "Name":"JobInitiator",
         "Value":"G4Admin",
         "DataType":0,
         "IsMaster":false,
         "ItemData":false,
         "IsUserGroup":false,
         "GroupId":null,
         "ValueString":"G4Admin",
         "InactiveValue":null,
         "InactiveValueString":null
      },
      {  
         "ID":10,
         "Name":"TaskLeft",
         "Value":"3",
         "DataType":0,
         "IsMaster":false,
         "ItemData":false,
         "IsUserGroup":false,
         "GroupId":null,
         "ValueString":null,
         "InactiveValue":null,
         "InactiveValueString":null
      },
      {  
         "ID":4,
         "Name":"ProofCycle",
         "Value":"1",
         "DataType":"Integer",
         "IsMaster":false,
         "ItemData":true,
         "IsUserGroup":false,
         "GroupId":null,
         "ValueString":"1",
         "InactiveValue":null,
         "InactiveValueString":null
      },
      {  
         "ID":5,
         "Name":"PassCycle",
         "Value":"1",
         "DataType":"Integer",
         "IsMaster":false,
         "ItemData":true,
         "IsUserGroup":false,
         "GroupId":null,
         "ValueString":"1",
         "InactiveValue":null,
         "InactiveValueString":null
      },
      {  
         "ID":6,
         "Name":"TotalPassCount",
         "Value":"1",
         "DataType":"Integer",
         "IsMaster":false,
         "ItemData":true,
         "IsUserGroup":false,
         "GroupId":null,
         "ValueString":"1",
         "InactiveValue":null,
         "InactiveValueString":null
      }
   ],
   "LinkedParentJobs":[  

   ],
   "LinkedChildJobs":[  

   ],
   "FullText":null
}
我想更新属性中的数组

示例:我想更改attributes
中的值,其中Name=ProofCycle

想用
json\u Modify
函数动态更新json吗

我有一些查询要展平json,但是
json\u Modify
无法更改数组中的值

DECLARE @KeyValue NVARCHAR(MAX) = '{"JobID":1005,"ItemID":2,"Prefix":"CC","Version":1,"ItemTypeID":4,"ItemType":"Change Control","StageID":3,"StageName":"Change Control Closure","WorkflowID":1,"WorkflowName":"Change Control Workflow","JobStatus":0,"IsJobArchived":false,"IsJobCanceled":false,"IsJobOnHold":false,"IsJobPhasedOut":false,"RelationID":0,"JobLastUpdatedBy":"G4Admin","JobStartDate":"2019-07-18T08:02:44.737718Z","JobLastUpdated":"2019-07-18T08:02:44.9857249Z","JobDueDate":"2019-07-23T08:02:44.8997205Z","JobEstimatedDate":"2019-07-23T08:02:44.8877188Z","JobCompletedDate":null,"RevisionNumber":1,"DocketNo":390,"JobVariance":"0","Mappings":[],"Groups":[12],"InactiveGroups":null,"Attributes":[{"ID":22,"Name":"WorkflowType","Value":"50","DataType":"Text","IsMaster":true,"ItemData":true,"IsUserGroup":false,"GroupId":null,"ValueString":"Change Control","InactiveValue":null,"InactiveValueString":null},{"ID":18,"Name":"Reason for change","Value":"23","DataType":"Text","IsMaster":true,"ItemData":true,"IsUserGroup":false,"GroupId":null,"ValueString":"CMC change","InactiveValue":null,"InactiveValueString":null},{"ID":12,"Name":"Market","Value":"12","DataType":"Text","IsMaster":true,"ItemData":true,"IsUserGroup":true,"GroupId":null,"ValueString":"Ireland","InactiveValue":null,"InactiveValueString":null},{"ID":14,"Name":"Product Name","Value":"34","DataType":"Text","IsMaster":true,"ItemData":true,"IsUserGroup":false,"GroupId":null,"ValueString":"DROXIA","InactiveValue":null,"InactiveValueString":null},{"ID":13,"Name":"CCDS Impacted?","Value":"15","DataType":"Text","IsMaster":true,"ItemData":true,"IsUserGroup":false,"GroupId":null,"ValueString":"No","InactiveValue":null,"InactiveValueString":null},{"ID":11,"Name":"JobOwner","Value":"G4Admin","DataType":"Text","IsMaster":false,"ItemData":true,"IsUserGroup":false,"GroupId":null,"ValueString":"G4Admin","InactiveValue":null,"InactiveValueString":null},{"ID":50,"Name":"PartNumber","Value":"CC-02-01","DataType":0,"IsMaster":false,"ItemData":false,"IsUserGroup":false,"GroupId":null,"ValueString":"CC-02-01","InactiveValue":null,"InactiveValueString":null},{"ID":50,"Name":"JobInitiator","Value":"G4Admin","DataType":0,"IsMaster":false,"ItemData":false,"IsUserGroup":false,"GroupId":null,"ValueString":"G4Admin","InactiveValue":null,"InactiveValueString":null},{"ID":10,"Name":"TaskLeft","Value":"3","DataType":0,"IsMaster":false,"ItemData":false,"IsUserGroup":false,"GroupId":null,"ValueString":null,"InactiveValue":null,"InactiveValueString":null},{"ID":4,"Name":"ProofCycle","Value":"1","DataType":"Integer","IsMaster":false,"ItemData":true,"IsUserGroup":false,"GroupId":null,"ValueString":"1","InactiveValue":null,"InactiveValueString":null},{"ID":5,"Name":"PassCycle","Value":"1","DataType":"Integer","IsMaster":false,"ItemData":true,"IsUserGroup":false,"GroupId":null,"ValueString":"1","InactiveValue":null,"InactiveValueString":null},{"ID":6,"Name":"TotalPassCount","Value":"1","DataType":"Integer","IsMaster":false,"ItemData":true,"IsUserGroup":false,"GroupId":null,"ValueString":"1","InactiveValue":null,"InactiveValueString":null}],"LinkedParentJobs":[],"LinkedChildJobs":[],"FullText":null}'

SELECT 
    -- Change Value to 80 where Name = 'Passcycle'
    JSON_MODIFY(@KeyValue, '$.Attributes', '80')
我得到一个空输出


有人能帮我解决这个问题吗?

解释:

DECLARE @KeyValue NVARCHAR(MAX) = N'{"JobID":1005,"ItemID":2,"Prefix":"CC","Version":1,"ItemTypeID":4,"ItemType":"Change Control","StageID":3,"StageName":"Change Control Closure","WorkflowID":1,"WorkflowName":"Change Control Workflow","JobStatus":0,"IsJobArchived":false,"IsJobCanceled":false,"IsJobOnHold":false,"IsJobPhasedOut":false,"RelationID":0,"JobLastUpdatedBy":"G4Admin","JobStartDate":"2019-07-18T08:02:44.737718Z","JobLastUpdated":"2019-07-18T08:02:44.9857249Z","JobDueDate":"2019-07-23T08:02:44.8997205Z","JobEstimatedDate":"2019-07-23T08:02:44.8877188Z","JobCompletedDate":null,"RevisionNumber":1,"DocketNo":390,"JobVariance":"0","Mappings":[],"Groups":[12],"InactiveGroups":null,"Attributes":[{"ID":22,"Name":"WorkflowType","Value":"50","DataType":"Text","IsMaster":true,"ItemData":true,"IsUserGroup":false,"GroupId":null,"ValueString":"Change Control","InactiveValue":null,"InactiveValueString":null},{"ID":18,"Name":"Reason for change","Value":"23","DataType":"Text","IsMaster":true,"ItemData":true,"IsUserGroup":false,"GroupId":null,"ValueString":"CMC change","InactiveValue":null,"InactiveValueString":null},{"ID":12,"Name":"Market","Value":"12","DataType":"Text","IsMaster":true,"ItemData":true,"IsUserGroup":true,"GroupId":null,"ValueString":"Ireland","InactiveValue":null,"InactiveValueString":null},{"ID":14,"Name":"Product Name","Value":"34","DataType":"Text","IsMaster":true,"ItemData":true,"IsUserGroup":false,"GroupId":null,"ValueString":"DROXIA","InactiveValue":null,"InactiveValueString":null},{"ID":13,"Name":"CCDS Impacted?","Value":"15","DataType":"Text","IsMaster":true,"ItemData":true,"IsUserGroup":false,"GroupId":null,"ValueString":"No","InactiveValue":null,"InactiveValueString":null},{"ID":11,"Name":"JobOwner","Value":"G4Admin","DataType":"Text","IsMaster":false,"ItemData":true,"IsUserGroup":false,"GroupId":null,"ValueString":"G4Admin","InactiveValue":null,"InactiveValueString":null},{"ID":50,"Name":"PartNumber","Value":"CC-02-01","DataType":0,"IsMaster":false,"ItemData":false,"IsUserGroup":false,"GroupId":null,"ValueString":"CC-02-01","InactiveValue":null,"InactiveValueString":null},{"ID":50,"Name":"JobInitiator","Value":"G4Admin","DataType":0,"IsMaster":false,"ItemData":false,"IsUserGroup":false,"GroupId":null,"ValueString":"G4Admin","InactiveValue":null,"InactiveValueString":null},{"ID":10,"Name":"TaskLeft","Value":"3","DataType":0,"IsMaster":false,"ItemData":false,"IsUserGroup":false,"GroupId":null,"ValueString":null,"InactiveValue":null,"InactiveValueString":null},{"ID":4,"Name":"ProofCycle","Value":"1","DataType":"Integer","IsMaster":false,"ItemData":true,"IsUserGroup":false,"GroupId":null,"ValueString":"1","InactiveValue":null,"InactiveValueString":null},{"ID":5,"Name":"PassCycle","Value":"1","DataType":"Integer","IsMaster":false,"ItemData":true,"IsUserGroup":false,"GroupId":null,"ValueString":"1","InactiveValue":null,"InactiveValueString":null},{"ID":6,"Name":"PassCycle","Value":"1","DataType":"Integer","IsMaster":false,"ItemData":true,"IsUserGroup":false,"GroupId":null,"ValueString":"1","InactiveValue":null,"InactiveValueString":null}],"LinkedParentJobs":[],"LinkedChildJobs":[],"FullText":null}'

DECLARE @stm nvarchar(max) = N''
SELECT @stm = @stm + CONCAT(
   'SELECT @KeyValue = JSON_MODIFY(@KeyValue, ''$.Attributes[',
   [key],
   '].Value'', ''80''); '
)   
FROM OPENJSON(@keyValue, '$.Attributes')
WHERE JSON_VALUE([value], '$.Name') = N'PassCycle'

EXECUTE sp_executesql @stm, N'@KeyValue NVARCHAR(MAX) OUTPUT', @KeyValue OUTPUT
DECLARE @KeyValue NVARCHAR(MAX) = N'{"JobID":1005,"ItemID":2,"Prefix":"CC","Version":1,"ItemTypeID":4,"ItemType":"Change Control","StageID":3,"StageName":"Change Control Closure","WorkflowID":1,"WorkflowName":"Change Control Workflow","JobStatus":0,"IsJobArchived":false,"IsJobCanceled":false,"IsJobOnHold":false,"IsJobPhasedOut":false,"RelationID":0,"JobLastUpdatedBy":"G4Admin","JobStartDate":"2019-07-18T08:02:44.737718Z","JobLastUpdated":"2019-07-18T08:02:44.9857249Z","JobDueDate":"2019-07-23T08:02:44.8997205Z","JobEstimatedDate":"2019-07-23T08:02:44.8877188Z","JobCompletedDate":null,"RevisionNumber":1,"DocketNo":390,"JobVariance":"0","Mappings":[],"Groups":[12],"InactiveGroups":null,"Attributes":[{"ID":22,"Name":"WorkflowType","Value":"50","DataType":"Text","IsMaster":true,"ItemData":true,"IsUserGroup":false,"GroupId":null,"ValueString":"Change Control","InactiveValue":null,"InactiveValueString":null},{"ID":18,"Name":"Reason for change","Value":"23","DataType":"Text","IsMaster":true,"ItemData":true,"IsUserGroup":false,"GroupId":null,"ValueString":"CMC change","InactiveValue":null,"InactiveValueString":null},{"ID":12,"Name":"Market","Value":"12","DataType":"Text","IsMaster":true,"ItemData":true,"IsUserGroup":true,"GroupId":null,"ValueString":"Ireland","InactiveValue":null,"InactiveValueString":null},{"ID":14,"Name":"Product Name","Value":"34","DataType":"Text","IsMaster":true,"ItemData":true,"IsUserGroup":false,"GroupId":null,"ValueString":"DROXIA","InactiveValue":null,"InactiveValueString":null},{"ID":13,"Name":"CCDS Impacted?","Value":"15","DataType":"Text","IsMaster":true,"ItemData":true,"IsUserGroup":false,"GroupId":null,"ValueString":"No","InactiveValue":null,"InactiveValueString":null},{"ID":11,"Name":"JobOwner","Value":"G4Admin","DataType":"Text","IsMaster":false,"ItemData":true,"IsUserGroup":false,"GroupId":null,"ValueString":"G4Admin","InactiveValue":null,"InactiveValueString":null},{"ID":50,"Name":"PartNumber","Value":"CC-02-01","DataType":0,"IsMaster":false,"ItemData":false,"IsUserGroup":false,"GroupId":null,"ValueString":"CC-02-01","InactiveValue":null,"InactiveValueString":null},{"ID":50,"Name":"JobInitiator","Value":"G4Admin","DataType":0,"IsMaster":false,"ItemData":false,"IsUserGroup":false,"GroupId":null,"ValueString":"G4Admin","InactiveValue":null,"InactiveValueString":null},{"ID":10,"Name":"TaskLeft","Value":"3","DataType":0,"IsMaster":false,"ItemData":false,"IsUserGroup":false,"GroupId":null,"ValueString":null,"InactiveValue":null,"InactiveValueString":null},{"ID":4,"Name":"ProofCycle","Value":"1","DataType":"Integer","IsMaster":false,"ItemData":true,"IsUserGroup":false,"GroupId":null,"ValueString":"1","InactiveValue":null,"InactiveValueString":null},{"ID":5,"Name":"PassCycle","Value":"1","DataType":"Integer","IsMaster":false,"ItemData":true,"IsUserGroup":false,"GroupId":null,"ValueString":"1","InactiveValue":null,"InactiveValueString":null},{"ID":6,"Name":"PassCycle","Value":"1","DataType":"Integer","IsMaster":false,"ItemData":true,"IsUserGroup":false,"GroupId":null,"ValueString":"1","InactiveValue":null,"InactiveValueString":null}],"LinkedParentJobs":[],"LinkedChildJobs":[],"FullText":null}'

SELECT @KeyValue = JSON_MODIFY(@KeyValue, '$.Attributes[' + [key] + '].Value', '80')
FROM OPENJSON(@keyValue, '$.Attributes')
WHERE JSON_VALUE([value], '$.Name') = N'PassCycle'
您可以使用
$.Attributes[x].Value
路径表达式访问和修改
“Attributes”JSON
数组中的项目,其中
x
是项目的索引。您需要将此路径表达式传递给。因此,这里一种可能的方法是生成并执行动态语句。但是,如果使用SQL Server 2017+,则可以提供一个变量作为此路径表达式的值

动态语句(SQL Server 2016+):

DECLARE @KeyValue NVARCHAR(MAX) = N'{"JobID":1005,"ItemID":2,"Prefix":"CC","Version":1,"ItemTypeID":4,"ItemType":"Change Control","StageID":3,"StageName":"Change Control Closure","WorkflowID":1,"WorkflowName":"Change Control Workflow","JobStatus":0,"IsJobArchived":false,"IsJobCanceled":false,"IsJobOnHold":false,"IsJobPhasedOut":false,"RelationID":0,"JobLastUpdatedBy":"G4Admin","JobStartDate":"2019-07-18T08:02:44.737718Z","JobLastUpdated":"2019-07-18T08:02:44.9857249Z","JobDueDate":"2019-07-23T08:02:44.8997205Z","JobEstimatedDate":"2019-07-23T08:02:44.8877188Z","JobCompletedDate":null,"RevisionNumber":1,"DocketNo":390,"JobVariance":"0","Mappings":[],"Groups":[12],"InactiveGroups":null,"Attributes":[{"ID":22,"Name":"WorkflowType","Value":"50","DataType":"Text","IsMaster":true,"ItemData":true,"IsUserGroup":false,"GroupId":null,"ValueString":"Change Control","InactiveValue":null,"InactiveValueString":null},{"ID":18,"Name":"Reason for change","Value":"23","DataType":"Text","IsMaster":true,"ItemData":true,"IsUserGroup":false,"GroupId":null,"ValueString":"CMC change","InactiveValue":null,"InactiveValueString":null},{"ID":12,"Name":"Market","Value":"12","DataType":"Text","IsMaster":true,"ItemData":true,"IsUserGroup":true,"GroupId":null,"ValueString":"Ireland","InactiveValue":null,"InactiveValueString":null},{"ID":14,"Name":"Product Name","Value":"34","DataType":"Text","IsMaster":true,"ItemData":true,"IsUserGroup":false,"GroupId":null,"ValueString":"DROXIA","InactiveValue":null,"InactiveValueString":null},{"ID":13,"Name":"CCDS Impacted?","Value":"15","DataType":"Text","IsMaster":true,"ItemData":true,"IsUserGroup":false,"GroupId":null,"ValueString":"No","InactiveValue":null,"InactiveValueString":null},{"ID":11,"Name":"JobOwner","Value":"G4Admin","DataType":"Text","IsMaster":false,"ItemData":true,"IsUserGroup":false,"GroupId":null,"ValueString":"G4Admin","InactiveValue":null,"InactiveValueString":null},{"ID":50,"Name":"PartNumber","Value":"CC-02-01","DataType":0,"IsMaster":false,"ItemData":false,"IsUserGroup":false,"GroupId":null,"ValueString":"CC-02-01","InactiveValue":null,"InactiveValueString":null},{"ID":50,"Name":"JobInitiator","Value":"G4Admin","DataType":0,"IsMaster":false,"ItemData":false,"IsUserGroup":false,"GroupId":null,"ValueString":"G4Admin","InactiveValue":null,"InactiveValueString":null},{"ID":10,"Name":"TaskLeft","Value":"3","DataType":0,"IsMaster":false,"ItemData":false,"IsUserGroup":false,"GroupId":null,"ValueString":null,"InactiveValue":null,"InactiveValueString":null},{"ID":4,"Name":"ProofCycle","Value":"1","DataType":"Integer","IsMaster":false,"ItemData":true,"IsUserGroup":false,"GroupId":null,"ValueString":"1","InactiveValue":null,"InactiveValueString":null},{"ID":5,"Name":"PassCycle","Value":"1","DataType":"Integer","IsMaster":false,"ItemData":true,"IsUserGroup":false,"GroupId":null,"ValueString":"1","InactiveValue":null,"InactiveValueString":null},{"ID":6,"Name":"PassCycle","Value":"1","DataType":"Integer","IsMaster":false,"ItemData":true,"IsUserGroup":false,"GroupId":null,"ValueString":"1","InactiveValue":null,"InactiveValueString":null}],"LinkedParentJobs":[],"LinkedChildJobs":[],"FullText":null}'

DECLARE @stm nvarchar(max) = N''
SELECT @stm = @stm + CONCAT(
   'SELECT @KeyValue = JSON_MODIFY(@KeyValue, ''$.Attributes[',
   [key],
   '].Value'', ''80''); '
)   
FROM OPENJSON(@keyValue, '$.Attributes')
WHERE JSON_VALUE([value], '$.Name') = N'PassCycle'

EXECUTE sp_executesql @stm, N'@KeyValue NVARCHAR(MAX) OUTPUT', @KeyValue OUTPUT
DECLARE @KeyValue NVARCHAR(MAX) = N'{"JobID":1005,"ItemID":2,"Prefix":"CC","Version":1,"ItemTypeID":4,"ItemType":"Change Control","StageID":3,"StageName":"Change Control Closure","WorkflowID":1,"WorkflowName":"Change Control Workflow","JobStatus":0,"IsJobArchived":false,"IsJobCanceled":false,"IsJobOnHold":false,"IsJobPhasedOut":false,"RelationID":0,"JobLastUpdatedBy":"G4Admin","JobStartDate":"2019-07-18T08:02:44.737718Z","JobLastUpdated":"2019-07-18T08:02:44.9857249Z","JobDueDate":"2019-07-23T08:02:44.8997205Z","JobEstimatedDate":"2019-07-23T08:02:44.8877188Z","JobCompletedDate":null,"RevisionNumber":1,"DocketNo":390,"JobVariance":"0","Mappings":[],"Groups":[12],"InactiveGroups":null,"Attributes":[{"ID":22,"Name":"WorkflowType","Value":"50","DataType":"Text","IsMaster":true,"ItemData":true,"IsUserGroup":false,"GroupId":null,"ValueString":"Change Control","InactiveValue":null,"InactiveValueString":null},{"ID":18,"Name":"Reason for change","Value":"23","DataType":"Text","IsMaster":true,"ItemData":true,"IsUserGroup":false,"GroupId":null,"ValueString":"CMC change","InactiveValue":null,"InactiveValueString":null},{"ID":12,"Name":"Market","Value":"12","DataType":"Text","IsMaster":true,"ItemData":true,"IsUserGroup":true,"GroupId":null,"ValueString":"Ireland","InactiveValue":null,"InactiveValueString":null},{"ID":14,"Name":"Product Name","Value":"34","DataType":"Text","IsMaster":true,"ItemData":true,"IsUserGroup":false,"GroupId":null,"ValueString":"DROXIA","InactiveValue":null,"InactiveValueString":null},{"ID":13,"Name":"CCDS Impacted?","Value":"15","DataType":"Text","IsMaster":true,"ItemData":true,"IsUserGroup":false,"GroupId":null,"ValueString":"No","InactiveValue":null,"InactiveValueString":null},{"ID":11,"Name":"JobOwner","Value":"G4Admin","DataType":"Text","IsMaster":false,"ItemData":true,"IsUserGroup":false,"GroupId":null,"ValueString":"G4Admin","InactiveValue":null,"InactiveValueString":null},{"ID":50,"Name":"PartNumber","Value":"CC-02-01","DataType":0,"IsMaster":false,"ItemData":false,"IsUserGroup":false,"GroupId":null,"ValueString":"CC-02-01","InactiveValue":null,"InactiveValueString":null},{"ID":50,"Name":"JobInitiator","Value":"G4Admin","DataType":0,"IsMaster":false,"ItemData":false,"IsUserGroup":false,"GroupId":null,"ValueString":"G4Admin","InactiveValue":null,"InactiveValueString":null},{"ID":10,"Name":"TaskLeft","Value":"3","DataType":0,"IsMaster":false,"ItemData":false,"IsUserGroup":false,"GroupId":null,"ValueString":null,"InactiveValue":null,"InactiveValueString":null},{"ID":4,"Name":"ProofCycle","Value":"1","DataType":"Integer","IsMaster":false,"ItemData":true,"IsUserGroup":false,"GroupId":null,"ValueString":"1","InactiveValue":null,"InactiveValueString":null},{"ID":5,"Name":"PassCycle","Value":"1","DataType":"Integer","IsMaster":false,"ItemData":true,"IsUserGroup":false,"GroupId":null,"ValueString":"1","InactiveValue":null,"InactiveValueString":null},{"ID":6,"Name":"PassCycle","Value":"1","DataType":"Integer","IsMaster":false,"ItemData":true,"IsUserGroup":false,"GroupId":null,"ValueString":"1","InactiveValue":null,"InactiveValueString":null}],"LinkedParentJobs":[],"LinkedChildJobs":[],"FullText":null}'

SELECT @KeyValue = JSON_MODIFY(@KeyValue, '$.Attributes[' + [key] + '].Value', '80')
FROM OPENJSON(@keyValue, '$.Attributes')
WHERE JSON_VALUE([value], '$.Name') = N'PassCycle'
使用变量作为
路径
表达式(SQL Server 2017+):

DECLARE @KeyValue NVARCHAR(MAX) = N'{"JobID":1005,"ItemID":2,"Prefix":"CC","Version":1,"ItemTypeID":4,"ItemType":"Change Control","StageID":3,"StageName":"Change Control Closure","WorkflowID":1,"WorkflowName":"Change Control Workflow","JobStatus":0,"IsJobArchived":false,"IsJobCanceled":false,"IsJobOnHold":false,"IsJobPhasedOut":false,"RelationID":0,"JobLastUpdatedBy":"G4Admin","JobStartDate":"2019-07-18T08:02:44.737718Z","JobLastUpdated":"2019-07-18T08:02:44.9857249Z","JobDueDate":"2019-07-23T08:02:44.8997205Z","JobEstimatedDate":"2019-07-23T08:02:44.8877188Z","JobCompletedDate":null,"RevisionNumber":1,"DocketNo":390,"JobVariance":"0","Mappings":[],"Groups":[12],"InactiveGroups":null,"Attributes":[{"ID":22,"Name":"WorkflowType","Value":"50","DataType":"Text","IsMaster":true,"ItemData":true,"IsUserGroup":false,"GroupId":null,"ValueString":"Change Control","InactiveValue":null,"InactiveValueString":null},{"ID":18,"Name":"Reason for change","Value":"23","DataType":"Text","IsMaster":true,"ItemData":true,"IsUserGroup":false,"GroupId":null,"ValueString":"CMC change","InactiveValue":null,"InactiveValueString":null},{"ID":12,"Name":"Market","Value":"12","DataType":"Text","IsMaster":true,"ItemData":true,"IsUserGroup":true,"GroupId":null,"ValueString":"Ireland","InactiveValue":null,"InactiveValueString":null},{"ID":14,"Name":"Product Name","Value":"34","DataType":"Text","IsMaster":true,"ItemData":true,"IsUserGroup":false,"GroupId":null,"ValueString":"DROXIA","InactiveValue":null,"InactiveValueString":null},{"ID":13,"Name":"CCDS Impacted?","Value":"15","DataType":"Text","IsMaster":true,"ItemData":true,"IsUserGroup":false,"GroupId":null,"ValueString":"No","InactiveValue":null,"InactiveValueString":null},{"ID":11,"Name":"JobOwner","Value":"G4Admin","DataType":"Text","IsMaster":false,"ItemData":true,"IsUserGroup":false,"GroupId":null,"ValueString":"G4Admin","InactiveValue":null,"InactiveValueString":null},{"ID":50,"Name":"PartNumber","Value":"CC-02-01","DataType":0,"IsMaster":false,"ItemData":false,"IsUserGroup":false,"GroupId":null,"ValueString":"CC-02-01","InactiveValue":null,"InactiveValueString":null},{"ID":50,"Name":"JobInitiator","Value":"G4Admin","DataType":0,"IsMaster":false,"ItemData":false,"IsUserGroup":false,"GroupId":null,"ValueString":"G4Admin","InactiveValue":null,"InactiveValueString":null},{"ID":10,"Name":"TaskLeft","Value":"3","DataType":0,"IsMaster":false,"ItemData":false,"IsUserGroup":false,"GroupId":null,"ValueString":null,"InactiveValue":null,"InactiveValueString":null},{"ID":4,"Name":"ProofCycle","Value":"1","DataType":"Integer","IsMaster":false,"ItemData":true,"IsUserGroup":false,"GroupId":null,"ValueString":"1","InactiveValue":null,"InactiveValueString":null},{"ID":5,"Name":"PassCycle","Value":"1","DataType":"Integer","IsMaster":false,"ItemData":true,"IsUserGroup":false,"GroupId":null,"ValueString":"1","InactiveValue":null,"InactiveValueString":null},{"ID":6,"Name":"PassCycle","Value":"1","DataType":"Integer","IsMaster":false,"ItemData":true,"IsUserGroup":false,"GroupId":null,"ValueString":"1","InactiveValue":null,"InactiveValueString":null}],"LinkedParentJobs":[],"LinkedChildJobs":[],"FullText":null}'

DECLARE @stm nvarchar(max) = N''
SELECT @stm = @stm + CONCAT(
   'SELECT @KeyValue = JSON_MODIFY(@KeyValue, ''$.Attributes[',
   [key],
   '].Value'', ''80''); '
)   
FROM OPENJSON(@keyValue, '$.Attributes')
WHERE JSON_VALUE([value], '$.Name') = N'PassCycle'

EXECUTE sp_executesql @stm, N'@KeyValue NVARCHAR(MAX) OUTPUT', @KeyValue OUTPUT
DECLARE @KeyValue NVARCHAR(MAX) = N'{"JobID":1005,"ItemID":2,"Prefix":"CC","Version":1,"ItemTypeID":4,"ItemType":"Change Control","StageID":3,"StageName":"Change Control Closure","WorkflowID":1,"WorkflowName":"Change Control Workflow","JobStatus":0,"IsJobArchived":false,"IsJobCanceled":false,"IsJobOnHold":false,"IsJobPhasedOut":false,"RelationID":0,"JobLastUpdatedBy":"G4Admin","JobStartDate":"2019-07-18T08:02:44.737718Z","JobLastUpdated":"2019-07-18T08:02:44.9857249Z","JobDueDate":"2019-07-23T08:02:44.8997205Z","JobEstimatedDate":"2019-07-23T08:02:44.8877188Z","JobCompletedDate":null,"RevisionNumber":1,"DocketNo":390,"JobVariance":"0","Mappings":[],"Groups":[12],"InactiveGroups":null,"Attributes":[{"ID":22,"Name":"WorkflowType","Value":"50","DataType":"Text","IsMaster":true,"ItemData":true,"IsUserGroup":false,"GroupId":null,"ValueString":"Change Control","InactiveValue":null,"InactiveValueString":null},{"ID":18,"Name":"Reason for change","Value":"23","DataType":"Text","IsMaster":true,"ItemData":true,"IsUserGroup":false,"GroupId":null,"ValueString":"CMC change","InactiveValue":null,"InactiveValueString":null},{"ID":12,"Name":"Market","Value":"12","DataType":"Text","IsMaster":true,"ItemData":true,"IsUserGroup":true,"GroupId":null,"ValueString":"Ireland","InactiveValue":null,"InactiveValueString":null},{"ID":14,"Name":"Product Name","Value":"34","DataType":"Text","IsMaster":true,"ItemData":true,"IsUserGroup":false,"GroupId":null,"ValueString":"DROXIA","InactiveValue":null,"InactiveValueString":null},{"ID":13,"Name":"CCDS Impacted?","Value":"15","DataType":"Text","IsMaster":true,"ItemData":true,"IsUserGroup":false,"GroupId":null,"ValueString":"No","InactiveValue":null,"InactiveValueString":null},{"ID":11,"Name":"JobOwner","Value":"G4Admin","DataType":"Text","IsMaster":false,"ItemData":true,"IsUserGroup":false,"GroupId":null,"ValueString":"G4Admin","InactiveValue":null,"InactiveValueString":null},{"ID":50,"Name":"PartNumber","Value":"CC-02-01","DataType":0,"IsMaster":false,"ItemData":false,"IsUserGroup":false,"GroupId":null,"ValueString":"CC-02-01","InactiveValue":null,"InactiveValueString":null},{"ID":50,"Name":"JobInitiator","Value":"G4Admin","DataType":0,"IsMaster":false,"ItemData":false,"IsUserGroup":false,"GroupId":null,"ValueString":"G4Admin","InactiveValue":null,"InactiveValueString":null},{"ID":10,"Name":"TaskLeft","Value":"3","DataType":0,"IsMaster":false,"ItemData":false,"IsUserGroup":false,"GroupId":null,"ValueString":null,"InactiveValue":null,"InactiveValueString":null},{"ID":4,"Name":"ProofCycle","Value":"1","DataType":"Integer","IsMaster":false,"ItemData":true,"IsUserGroup":false,"GroupId":null,"ValueString":"1","InactiveValue":null,"InactiveValueString":null},{"ID":5,"Name":"PassCycle","Value":"1","DataType":"Integer","IsMaster":false,"ItemData":true,"IsUserGroup":false,"GroupId":null,"ValueString":"1","InactiveValue":null,"InactiveValueString":null},{"ID":6,"Name":"PassCycle","Value":"1","DataType":"Integer","IsMaster":false,"ItemData":true,"IsUserGroup":false,"GroupId":null,"ValueString":"1","InactiveValue":null,"InactiveValueString":null}],"LinkedParentJobs":[],"LinkedChildJobs":[],"FullText":null}'

SELECT @KeyValue = JSON_MODIFY(@KeyValue, '$.Attributes[' + [key] + '].Value', '80')
FROM OPENJSON(@keyValue, '$.Attributes')
WHERE JSON_VALUE([value], '$.Name') = N'PassCycle'
注意事项:

DECLARE @KeyValue NVARCHAR(MAX) = N'{"JobID":1005,"ItemID":2,"Prefix":"CC","Version":1,"ItemTypeID":4,"ItemType":"Change Control","StageID":3,"StageName":"Change Control Closure","WorkflowID":1,"WorkflowName":"Change Control Workflow","JobStatus":0,"IsJobArchived":false,"IsJobCanceled":false,"IsJobOnHold":false,"IsJobPhasedOut":false,"RelationID":0,"JobLastUpdatedBy":"G4Admin","JobStartDate":"2019-07-18T08:02:44.737718Z","JobLastUpdated":"2019-07-18T08:02:44.9857249Z","JobDueDate":"2019-07-23T08:02:44.8997205Z","JobEstimatedDate":"2019-07-23T08:02:44.8877188Z","JobCompletedDate":null,"RevisionNumber":1,"DocketNo":390,"JobVariance":"0","Mappings":[],"Groups":[12],"InactiveGroups":null,"Attributes":[{"ID":22,"Name":"WorkflowType","Value":"50","DataType":"Text","IsMaster":true,"ItemData":true,"IsUserGroup":false,"GroupId":null,"ValueString":"Change Control","InactiveValue":null,"InactiveValueString":null},{"ID":18,"Name":"Reason for change","Value":"23","DataType":"Text","IsMaster":true,"ItemData":true,"IsUserGroup":false,"GroupId":null,"ValueString":"CMC change","InactiveValue":null,"InactiveValueString":null},{"ID":12,"Name":"Market","Value":"12","DataType":"Text","IsMaster":true,"ItemData":true,"IsUserGroup":true,"GroupId":null,"ValueString":"Ireland","InactiveValue":null,"InactiveValueString":null},{"ID":14,"Name":"Product Name","Value":"34","DataType":"Text","IsMaster":true,"ItemData":true,"IsUserGroup":false,"GroupId":null,"ValueString":"DROXIA","InactiveValue":null,"InactiveValueString":null},{"ID":13,"Name":"CCDS Impacted?","Value":"15","DataType":"Text","IsMaster":true,"ItemData":true,"IsUserGroup":false,"GroupId":null,"ValueString":"No","InactiveValue":null,"InactiveValueString":null},{"ID":11,"Name":"JobOwner","Value":"G4Admin","DataType":"Text","IsMaster":false,"ItemData":true,"IsUserGroup":false,"GroupId":null,"ValueString":"G4Admin","InactiveValue":null,"InactiveValueString":null},{"ID":50,"Name":"PartNumber","Value":"CC-02-01","DataType":0,"IsMaster":false,"ItemData":false,"IsUserGroup":false,"GroupId":null,"ValueString":"CC-02-01","InactiveValue":null,"InactiveValueString":null},{"ID":50,"Name":"JobInitiator","Value":"G4Admin","DataType":0,"IsMaster":false,"ItemData":false,"IsUserGroup":false,"GroupId":null,"ValueString":"G4Admin","InactiveValue":null,"InactiveValueString":null},{"ID":10,"Name":"TaskLeft","Value":"3","DataType":0,"IsMaster":false,"ItemData":false,"IsUserGroup":false,"GroupId":null,"ValueString":null,"InactiveValue":null,"InactiveValueString":null},{"ID":4,"Name":"ProofCycle","Value":"1","DataType":"Integer","IsMaster":false,"ItemData":true,"IsUserGroup":false,"GroupId":null,"ValueString":"1","InactiveValue":null,"InactiveValueString":null},{"ID":5,"Name":"PassCycle","Value":"1","DataType":"Integer","IsMaster":false,"ItemData":true,"IsUserGroup":false,"GroupId":null,"ValueString":"1","InactiveValue":null,"InactiveValueString":null},{"ID":6,"Name":"PassCycle","Value":"1","DataType":"Integer","IsMaster":false,"ItemData":true,"IsUserGroup":false,"GroupId":null,"ValueString":"1","InactiveValue":null,"InactiveValueString":null}],"LinkedParentJobs":[],"LinkedChildJobs":[],"FullText":null}'

DECLARE @stm nvarchar(max) = N''
SELECT @stm = @stm + CONCAT(
   'SELECT @KeyValue = JSON_MODIFY(@KeyValue, ''$.Attributes[',
   [key],
   '].Value'', ''80''); '
)   
FROM OPENJSON(@keyValue, '$.Attributes')
WHERE JSON_VALUE([value], '$.Name') = N'PassCycle'

EXECUTE sp_executesql @stm, N'@KeyValue NVARCHAR(MAX) OUTPUT', @KeyValue OUTPUT
DECLARE @KeyValue NVARCHAR(MAX) = N'{"JobID":1005,"ItemID":2,"Prefix":"CC","Version":1,"ItemTypeID":4,"ItemType":"Change Control","StageID":3,"StageName":"Change Control Closure","WorkflowID":1,"WorkflowName":"Change Control Workflow","JobStatus":0,"IsJobArchived":false,"IsJobCanceled":false,"IsJobOnHold":false,"IsJobPhasedOut":false,"RelationID":0,"JobLastUpdatedBy":"G4Admin","JobStartDate":"2019-07-18T08:02:44.737718Z","JobLastUpdated":"2019-07-18T08:02:44.9857249Z","JobDueDate":"2019-07-23T08:02:44.8997205Z","JobEstimatedDate":"2019-07-23T08:02:44.8877188Z","JobCompletedDate":null,"RevisionNumber":1,"DocketNo":390,"JobVariance":"0","Mappings":[],"Groups":[12],"InactiveGroups":null,"Attributes":[{"ID":22,"Name":"WorkflowType","Value":"50","DataType":"Text","IsMaster":true,"ItemData":true,"IsUserGroup":false,"GroupId":null,"ValueString":"Change Control","InactiveValue":null,"InactiveValueString":null},{"ID":18,"Name":"Reason for change","Value":"23","DataType":"Text","IsMaster":true,"ItemData":true,"IsUserGroup":false,"GroupId":null,"ValueString":"CMC change","InactiveValue":null,"InactiveValueString":null},{"ID":12,"Name":"Market","Value":"12","DataType":"Text","IsMaster":true,"ItemData":true,"IsUserGroup":true,"GroupId":null,"ValueString":"Ireland","InactiveValue":null,"InactiveValueString":null},{"ID":14,"Name":"Product Name","Value":"34","DataType":"Text","IsMaster":true,"ItemData":true,"IsUserGroup":false,"GroupId":null,"ValueString":"DROXIA","InactiveValue":null,"InactiveValueString":null},{"ID":13,"Name":"CCDS Impacted?","Value":"15","DataType":"Text","IsMaster":true,"ItemData":true,"IsUserGroup":false,"GroupId":null,"ValueString":"No","InactiveValue":null,"InactiveValueString":null},{"ID":11,"Name":"JobOwner","Value":"G4Admin","DataType":"Text","IsMaster":false,"ItemData":true,"IsUserGroup":false,"GroupId":null,"ValueString":"G4Admin","InactiveValue":null,"InactiveValueString":null},{"ID":50,"Name":"PartNumber","Value":"CC-02-01","DataType":0,"IsMaster":false,"ItemData":false,"IsUserGroup":false,"GroupId":null,"ValueString":"CC-02-01","InactiveValue":null,"InactiveValueString":null},{"ID":50,"Name":"JobInitiator","Value":"G4Admin","DataType":0,"IsMaster":false,"ItemData":false,"IsUserGroup":false,"GroupId":null,"ValueString":"G4Admin","InactiveValue":null,"InactiveValueString":null},{"ID":10,"Name":"TaskLeft","Value":"3","DataType":0,"IsMaster":false,"ItemData":false,"IsUserGroup":false,"GroupId":null,"ValueString":null,"InactiveValue":null,"InactiveValueString":null},{"ID":4,"Name":"ProofCycle","Value":"1","DataType":"Integer","IsMaster":false,"ItemData":true,"IsUserGroup":false,"GroupId":null,"ValueString":"1","InactiveValue":null,"InactiveValueString":null},{"ID":5,"Name":"PassCycle","Value":"1","DataType":"Integer","IsMaster":false,"ItemData":true,"IsUserGroup":false,"GroupId":null,"ValueString":"1","InactiveValue":null,"InactiveValueString":null},{"ID":6,"Name":"PassCycle","Value":"1","DataType":"Integer","IsMaster":false,"ItemData":true,"IsUserGroup":false,"GroupId":null,"ValueString":"1","InactiveValue":null,"InactiveValueString":null}],"LinkedParentJobs":[],"LinkedChildJobs":[],"FullText":null}'

SELECT @KeyValue = JSON_MODIFY(@KeyValue, '$.Attributes[' + [key] + '].Value', '80')
FROM OPENJSON(@keyValue, '$.Attributes')
WHERE JSON_VALUE([value], '$.Name') = N'PassCycle'

这两个示例都将修改
JSON
数组中的所有项(而不仅仅是一项),其匹配条件为
JSON\u值([VALUE],'$.Name')=N'PassCycle'
解释:

DECLARE @KeyValue NVARCHAR(MAX) = N'{"JobID":1005,"ItemID":2,"Prefix":"CC","Version":1,"ItemTypeID":4,"ItemType":"Change Control","StageID":3,"StageName":"Change Control Closure","WorkflowID":1,"WorkflowName":"Change Control Workflow","JobStatus":0,"IsJobArchived":false,"IsJobCanceled":false,"IsJobOnHold":false,"IsJobPhasedOut":false,"RelationID":0,"JobLastUpdatedBy":"G4Admin","JobStartDate":"2019-07-18T08:02:44.737718Z","JobLastUpdated":"2019-07-18T08:02:44.9857249Z","JobDueDate":"2019-07-23T08:02:44.8997205Z","JobEstimatedDate":"2019-07-23T08:02:44.8877188Z","JobCompletedDate":null,"RevisionNumber":1,"DocketNo":390,"JobVariance":"0","Mappings":[],"Groups":[12],"InactiveGroups":null,"Attributes":[{"ID":22,"Name":"WorkflowType","Value":"50","DataType":"Text","IsMaster":true,"ItemData":true,"IsUserGroup":false,"GroupId":null,"ValueString":"Change Control","InactiveValue":null,"InactiveValueString":null},{"ID":18,"Name":"Reason for change","Value":"23","DataType":"Text","IsMaster":true,"ItemData":true,"IsUserGroup":false,"GroupId":null,"ValueString":"CMC change","InactiveValue":null,"InactiveValueString":null},{"ID":12,"Name":"Market","Value":"12","DataType":"Text","IsMaster":true,"ItemData":true,"IsUserGroup":true,"GroupId":null,"ValueString":"Ireland","InactiveValue":null,"InactiveValueString":null},{"ID":14,"Name":"Product Name","Value":"34","DataType":"Text","IsMaster":true,"ItemData":true,"IsUserGroup":false,"GroupId":null,"ValueString":"DROXIA","InactiveValue":null,"InactiveValueString":null},{"ID":13,"Name":"CCDS Impacted?","Value":"15","DataType":"Text","IsMaster":true,"ItemData":true,"IsUserGroup":false,"GroupId":null,"ValueString":"No","InactiveValue":null,"InactiveValueString":null},{"ID":11,"Name":"JobOwner","Value":"G4Admin","DataType":"Text","IsMaster":false,"ItemData":true,"IsUserGroup":false,"GroupId":null,"ValueString":"G4Admin","InactiveValue":null,"InactiveValueString":null},{"ID":50,"Name":"PartNumber","Value":"CC-02-01","DataType":0,"IsMaster":false,"ItemData":false,"IsUserGroup":false,"GroupId":null,"ValueString":"CC-02-01","InactiveValue":null,"InactiveValueString":null},{"ID":50,"Name":"JobInitiator","Value":"G4Admin","DataType":0,"IsMaster":false,"ItemData":false,"IsUserGroup":false,"GroupId":null,"ValueString":"G4Admin","InactiveValue":null,"InactiveValueString":null},{"ID":10,"Name":"TaskLeft","Value":"3","DataType":0,"IsMaster":false,"ItemData":false,"IsUserGroup":false,"GroupId":null,"ValueString":null,"InactiveValue":null,"InactiveValueString":null},{"ID":4,"Name":"ProofCycle","Value":"1","DataType":"Integer","IsMaster":false,"ItemData":true,"IsUserGroup":false,"GroupId":null,"ValueString":"1","InactiveValue":null,"InactiveValueString":null},{"ID":5,"Name":"PassCycle","Value":"1","DataType":"Integer","IsMaster":false,"ItemData":true,"IsUserGroup":false,"GroupId":null,"ValueString":"1","InactiveValue":null,"InactiveValueString":null},{"ID":6,"Name":"PassCycle","Value":"1","DataType":"Integer","IsMaster":false,"ItemData":true,"IsUserGroup":false,"GroupId":null,"ValueString":"1","InactiveValue":null,"InactiveValueString":null}],"LinkedParentJobs":[],"LinkedChildJobs":[],"FullText":null}'

DECLARE @stm nvarchar(max) = N''
SELECT @stm = @stm + CONCAT(
   'SELECT @KeyValue = JSON_MODIFY(@KeyValue, ''$.Attributes[',
   [key],
   '].Value'', ''80''); '
)   
FROM OPENJSON(@keyValue, '$.Attributes')
WHERE JSON_VALUE([value], '$.Name') = N'PassCycle'

EXECUTE sp_executesql @stm, N'@KeyValue NVARCHAR(MAX) OUTPUT', @KeyValue OUTPUT
DECLARE @KeyValue NVARCHAR(MAX) = N'{"JobID":1005,"ItemID":2,"Prefix":"CC","Version":1,"ItemTypeID":4,"ItemType":"Change Control","StageID":3,"StageName":"Change Control Closure","WorkflowID":1,"WorkflowName":"Change Control Workflow","JobStatus":0,"IsJobArchived":false,"IsJobCanceled":false,"IsJobOnHold":false,"IsJobPhasedOut":false,"RelationID":0,"JobLastUpdatedBy":"G4Admin","JobStartDate":"2019-07-18T08:02:44.737718Z","JobLastUpdated":"2019-07-18T08:02:44.9857249Z","JobDueDate":"2019-07-23T08:02:44.8997205Z","JobEstimatedDate":"2019-07-23T08:02:44.8877188Z","JobCompletedDate":null,"RevisionNumber":1,"DocketNo":390,"JobVariance":"0","Mappings":[],"Groups":[12],"InactiveGroups":null,"Attributes":[{"ID":22,"Name":"WorkflowType","Value":"50","DataType":"Text","IsMaster":true,"ItemData":true,"IsUserGroup":false,"GroupId":null,"ValueString":"Change Control","InactiveValue":null,"InactiveValueString":null},{"ID":18,"Name":"Reason for change","Value":"23","DataType":"Text","IsMaster":true,"ItemData":true,"IsUserGroup":false,"GroupId":null,"ValueString":"CMC change","InactiveValue":null,"InactiveValueString":null},{"ID":12,"Name":"Market","Value":"12","DataType":"Text","IsMaster":true,"ItemData":true,"IsUserGroup":true,"GroupId":null,"ValueString":"Ireland","InactiveValue":null,"InactiveValueString":null},{"ID":14,"Name":"Product Name","Value":"34","DataType":"Text","IsMaster":true,"ItemData":true,"IsUserGroup":false,"GroupId":null,"ValueString":"DROXIA","InactiveValue":null,"InactiveValueString":null},{"ID":13,"Name":"CCDS Impacted?","Value":"15","DataType":"Text","IsMaster":true,"ItemData":true,"IsUserGroup":false,"GroupId":null,"ValueString":"No","InactiveValue":null,"InactiveValueString":null},{"ID":11,"Name":"JobOwner","Value":"G4Admin","DataType":"Text","IsMaster":false,"ItemData":true,"IsUserGroup":false,"GroupId":null,"ValueString":"G4Admin","InactiveValue":null,"InactiveValueString":null},{"ID":50,"Name":"PartNumber","Value":"CC-02-01","DataType":0,"IsMaster":false,"ItemData":false,"IsUserGroup":false,"GroupId":null,"ValueString":"CC-02-01","InactiveValue":null,"InactiveValueString":null},{"ID":50,"Name":"JobInitiator","Value":"G4Admin","DataType":0,"IsMaster":false,"ItemData":false,"IsUserGroup":false,"GroupId":null,"ValueString":"G4Admin","InactiveValue":null,"InactiveValueString":null},{"ID":10,"Name":"TaskLeft","Value":"3","DataType":0,"IsMaster":false,"ItemData":false,"IsUserGroup":false,"GroupId":null,"ValueString":null,"InactiveValue":null,"InactiveValueString":null},{"ID":4,"Name":"ProofCycle","Value":"1","DataType":"Integer","IsMaster":false,"ItemData":true,"IsUserGroup":false,"GroupId":null,"ValueString":"1","InactiveValue":null,"InactiveValueString":null},{"ID":5,"Name":"PassCycle","Value":"1","DataType":"Integer","IsMaster":false,"ItemData":true,"IsUserGroup":false,"GroupId":null,"ValueString":"1","InactiveValue":null,"InactiveValueString":null},{"ID":6,"Name":"PassCycle","Value":"1","DataType":"Integer","IsMaster":false,"ItemData":true,"IsUserGroup":false,"GroupId":null,"ValueString":"1","InactiveValue":null,"InactiveValueString":null}],"LinkedParentJobs":[],"LinkedChildJobs":[],"FullText":null}'

SELECT @KeyValue = JSON_MODIFY(@KeyValue, '$.Attributes[' + [key] + '].Value', '80')
FROM OPENJSON(@keyValue, '$.Attributes')
WHERE JSON_VALUE([value], '$.Name') = N'PassCycle'
您可以使用
$.Attributes[x].Value
路径表达式访问和修改
“Attributes”JSON
数组中的项目,其中
x
是项目的索引。您需要将此路径表达式传递给。因此,这里一种可能的方法是生成并执行动态语句。但是,如果使用SQL Server 2017+,则可以提供一个变量作为此路径表达式的值

动态语句(SQL Server 2016+):

DECLARE @KeyValue NVARCHAR(MAX) = N'{"JobID":1005,"ItemID":2,"Prefix":"CC","Version":1,"ItemTypeID":4,"ItemType":"Change Control","StageID":3,"StageName":"Change Control Closure","WorkflowID":1,"WorkflowName":"Change Control Workflow","JobStatus":0,"IsJobArchived":false,"IsJobCanceled":false,"IsJobOnHold":false,"IsJobPhasedOut":false,"RelationID":0,"JobLastUpdatedBy":"G4Admin","JobStartDate":"2019-07-18T08:02:44.737718Z","JobLastUpdated":"2019-07-18T08:02:44.9857249Z","JobDueDate":"2019-07-23T08:02:44.8997205Z","JobEstimatedDate":"2019-07-23T08:02:44.8877188Z","JobCompletedDate":null,"RevisionNumber":1,"DocketNo":390,"JobVariance":"0","Mappings":[],"Groups":[12],"InactiveGroups":null,"Attributes":[{"ID":22,"Name":"WorkflowType","Value":"50","DataType":"Text","IsMaster":true,"ItemData":true,"IsUserGroup":false,"GroupId":null,"ValueString":"Change Control","InactiveValue":null,"InactiveValueString":null},{"ID":18,"Name":"Reason for change","Value":"23","DataType":"Text","IsMaster":true,"ItemData":true,"IsUserGroup":false,"GroupId":null,"ValueString":"CMC change","InactiveValue":null,"InactiveValueString":null},{"ID":12,"Name":"Market","Value":"12","DataType":"Text","IsMaster":true,"ItemData":true,"IsUserGroup":true,"GroupId":null,"ValueString":"Ireland","InactiveValue":null,"InactiveValueString":null},{"ID":14,"Name":"Product Name","Value":"34","DataType":"Text","IsMaster":true,"ItemData":true,"IsUserGroup":false,"GroupId":null,"ValueString":"DROXIA","InactiveValue":null,"InactiveValueString":null},{"ID":13,"Name":"CCDS Impacted?","Value":"15","DataType":"Text","IsMaster":true,"ItemData":true,"IsUserGroup":false,"GroupId":null,"ValueString":"No","InactiveValue":null,"InactiveValueString":null},{"ID":11,"Name":"JobOwner","Value":"G4Admin","DataType":"Text","IsMaster":false,"ItemData":true,"IsUserGroup":false,"GroupId":null,"ValueString":"G4Admin","InactiveValue":null,"InactiveValueString":null},{"ID":50,"Name":"PartNumber","Value":"CC-02-01","DataType":0,"IsMaster":false,"ItemData":false,"IsUserGroup":false,"GroupId":null,"ValueString":"CC-02-01","InactiveValue":null,"InactiveValueString":null},{"ID":50,"Name":"JobInitiator","Value":"G4Admin","DataType":0,"IsMaster":false,"ItemData":false,"IsUserGroup":false,"GroupId":null,"ValueString":"G4Admin","InactiveValue":null,"InactiveValueString":null},{"ID":10,"Name":"TaskLeft","Value":"3","DataType":0,"IsMaster":false,"ItemData":false,"IsUserGroup":false,"GroupId":null,"ValueString":null,"InactiveValue":null,"InactiveValueString":null},{"ID":4,"Name":"ProofCycle","Value":"1","DataType":"Integer","IsMaster":false,"ItemData":true,"IsUserGroup":false,"GroupId":null,"ValueString":"1","InactiveValue":null,"InactiveValueString":null},{"ID":5,"Name":"PassCycle","Value":"1","DataType":"Integer","IsMaster":false,"ItemData":true,"IsUserGroup":false,"GroupId":null,"ValueString":"1","InactiveValue":null,"InactiveValueString":null},{"ID":6,"Name":"PassCycle","Value":"1","DataType":"Integer","IsMaster":false,"ItemData":true,"IsUserGroup":false,"GroupId":null,"ValueString":"1","InactiveValue":null,"InactiveValueString":null}],"LinkedParentJobs":[],"LinkedChildJobs":[],"FullText":null}'

DECLARE @stm nvarchar(max) = N''
SELECT @stm = @stm + CONCAT(
   'SELECT @KeyValue = JSON_MODIFY(@KeyValue, ''$.Attributes[',
   [key],
   '].Value'', ''80''); '
)   
FROM OPENJSON(@keyValue, '$.Attributes')
WHERE JSON_VALUE([value], '$.Name') = N'PassCycle'

EXECUTE sp_executesql @stm, N'@KeyValue NVARCHAR(MAX) OUTPUT', @KeyValue OUTPUT
DECLARE @KeyValue NVARCHAR(MAX) = N'{"JobID":1005,"ItemID":2,"Prefix":"CC","Version":1,"ItemTypeID":4,"ItemType":"Change Control","StageID":3,"StageName":"Change Control Closure","WorkflowID":1,"WorkflowName":"Change Control Workflow","JobStatus":0,"IsJobArchived":false,"IsJobCanceled":false,"IsJobOnHold":false,"IsJobPhasedOut":false,"RelationID":0,"JobLastUpdatedBy":"G4Admin","JobStartDate":"2019-07-18T08:02:44.737718Z","JobLastUpdated":"2019-07-18T08:02:44.9857249Z","JobDueDate":"2019-07-23T08:02:44.8997205Z","JobEstimatedDate":"2019-07-23T08:02:44.8877188Z","JobCompletedDate":null,"RevisionNumber":1,"DocketNo":390,"JobVariance":"0","Mappings":[],"Groups":[12],"InactiveGroups":null,"Attributes":[{"ID":22,"Name":"WorkflowType","Value":"50","DataType":"Text","IsMaster":true,"ItemData":true,"IsUserGroup":false,"GroupId":null,"ValueString":"Change Control","InactiveValue":null,"InactiveValueString":null},{"ID":18,"Name":"Reason for change","Value":"23","DataType":"Text","IsMaster":true,"ItemData":true,"IsUserGroup":false,"GroupId":null,"ValueString":"CMC change","InactiveValue":null,"InactiveValueString":null},{"ID":12,"Name":"Market","Value":"12","DataType":"Text","IsMaster":true,"ItemData":true,"IsUserGroup":true,"GroupId":null,"ValueString":"Ireland","InactiveValue":null,"InactiveValueString":null},{"ID":14,"Name":"Product Name","Value":"34","DataType":"Text","IsMaster":true,"ItemData":true,"IsUserGroup":false,"GroupId":null,"ValueString":"DROXIA","InactiveValue":null,"InactiveValueString":null},{"ID":13,"Name":"CCDS Impacted?","Value":"15","DataType":"Text","IsMaster":true,"ItemData":true,"IsUserGroup":false,"GroupId":null,"ValueString":"No","InactiveValue":null,"InactiveValueString":null},{"ID":11,"Name":"JobOwner","Value":"G4Admin","DataType":"Text","IsMaster":false,"ItemData":true,"IsUserGroup":false,"GroupId":null,"ValueString":"G4Admin","InactiveValue":null,"InactiveValueString":null},{"ID":50,"Name":"PartNumber","Value":"CC-02-01","DataType":0,"IsMaster":false,"ItemData":false,"IsUserGroup":false,"GroupId":null,"ValueString":"CC-02-01","InactiveValue":null,"InactiveValueString":null},{"ID":50,"Name":"JobInitiator","Value":"G4Admin","DataType":0,"IsMaster":false,"ItemData":false,"IsUserGroup":false,"GroupId":null,"ValueString":"G4Admin","InactiveValue":null,"InactiveValueString":null},{"ID":10,"Name":"TaskLeft","Value":"3","DataType":0,"IsMaster":false,"ItemData":false,"IsUserGroup":false,"GroupId":null,"ValueString":null,"InactiveValue":null,"InactiveValueString":null},{"ID":4,"Name":"ProofCycle","Value":"1","DataType":"Integer","IsMaster":false,"ItemData":true,"IsUserGroup":false,"GroupId":null,"ValueString":"1","InactiveValue":null,"InactiveValueString":null},{"ID":5,"Name":"PassCycle","Value":"1","DataType":"Integer","IsMaster":false,"ItemData":true,"IsUserGroup":false,"GroupId":null,"ValueString":"1","InactiveValue":null,"InactiveValueString":null},{"ID":6,"Name":"PassCycle","Value":"1","DataType":"Integer","IsMaster":false,"ItemData":true,"IsUserGroup":false,"GroupId":null,"ValueString":"1","InactiveValue":null,"InactiveValueString":null}],"LinkedParentJobs":[],"LinkedChildJobs":[],"FullText":null}'

SELECT @KeyValue = JSON_MODIFY(@KeyValue, '$.Attributes[' + [key] + '].Value', '80')
FROM OPENJSON(@keyValue, '$.Attributes')
WHERE JSON_VALUE([value], '$.Name') = N'PassCycle'
使用变量作为
路径
表达式(SQL Server 2017+):

DECLARE @KeyValue NVARCHAR(MAX) = N'{"JobID":1005,"ItemID":2,"Prefix":"CC","Version":1,"ItemTypeID":4,"ItemType":"Change Control","StageID":3,"StageName":"Change Control Closure","WorkflowID":1,"WorkflowName":"Change Control Workflow","JobStatus":0,"IsJobArchived":false,"IsJobCanceled":false,"IsJobOnHold":false,"IsJobPhasedOut":false,"RelationID":0,"JobLastUpdatedBy":"G4Admin","JobStartDate":"2019-07-18T08:02:44.737718Z","JobLastUpdated":"2019-07-18T08:02:44.9857249Z","JobDueDate":"2019-07-23T08:02:44.8997205Z","JobEstimatedDate":"2019-07-23T08:02:44.8877188Z","JobCompletedDate":null,"RevisionNumber":1,"DocketNo":390,"JobVariance":"0","Mappings":[],"Groups":[12],"InactiveGroups":null,"Attributes":[{"ID":22,"Name":"WorkflowType","Value":"50","DataType":"Text","IsMaster":true,"ItemData":true,"IsUserGroup":false,"GroupId":null,"ValueString":"Change Control","InactiveValue":null,"InactiveValueString":null},{"ID":18,"Name":"Reason for change","Value":"23","DataType":"Text","IsMaster":true,"ItemData":true,"IsUserGroup":false,"GroupId":null,"ValueString":"CMC change","InactiveValue":null,"InactiveValueString":null},{"ID":12,"Name":"Market","Value":"12","DataType":"Text","IsMaster":true,"ItemData":true,"IsUserGroup":true,"GroupId":null,"ValueString":"Ireland","InactiveValue":null,"InactiveValueString":null},{"ID":14,"Name":"Product Name","Value":"34","DataType":"Text","IsMaster":true,"ItemData":true,"IsUserGroup":false,"GroupId":null,"ValueString":"DROXIA","InactiveValue":null,"InactiveValueString":null},{"ID":13,"Name":"CCDS Impacted?","Value":"15","DataType":"Text","IsMaster":true,"ItemData":true,"IsUserGroup":false,"GroupId":null,"ValueString":"No","InactiveValue":null,"InactiveValueString":null},{"ID":11,"Name":"JobOwner","Value":"G4Admin","DataType":"Text","IsMaster":false,"ItemData":true,"IsUserGroup":false,"GroupId":null,"ValueString":"G4Admin","InactiveValue":null,"InactiveValueString":null},{"ID":50,"Name":"PartNumber","Value":"CC-02-01","DataType":0,"IsMaster":false,"ItemData":false,"IsUserGroup":false,"GroupId":null,"ValueString":"CC-02-01","InactiveValue":null,"InactiveValueString":null},{"ID":50,"Name":"JobInitiator","Value":"G4Admin","DataType":0,"IsMaster":false,"ItemData":false,"IsUserGroup":false,"GroupId":null,"ValueString":"G4Admin","InactiveValue":null,"InactiveValueString":null},{"ID":10,"Name":"TaskLeft","Value":"3","DataType":0,"IsMaster":false,"ItemData":false,"IsUserGroup":false,"GroupId":null,"ValueString":null,"InactiveValue":null,"InactiveValueString":null},{"ID":4,"Name":"ProofCycle","Value":"1","DataType":"Integer","IsMaster":false,"ItemData":true,"IsUserGroup":false,"GroupId":null,"ValueString":"1","InactiveValue":null,"InactiveValueString":null},{"ID":5,"Name":"PassCycle","Value":"1","DataType":"Integer","IsMaster":false,"ItemData":true,"IsUserGroup":false,"GroupId":null,"ValueString":"1","InactiveValue":null,"InactiveValueString":null},{"ID":6,"Name":"PassCycle","Value":"1","DataType":"Integer","IsMaster":false,"ItemData":true,"IsUserGroup":false,"GroupId":null,"ValueString":"1","InactiveValue":null,"InactiveValueString":null}],"LinkedParentJobs":[],"LinkedChildJobs":[],"FullText":null}'

DECLARE @stm nvarchar(max) = N''
SELECT @stm = @stm + CONCAT(
   'SELECT @KeyValue = JSON_MODIFY(@KeyValue, ''$.Attributes[',
   [key],
   '].Value'', ''80''); '
)   
FROM OPENJSON(@keyValue, '$.Attributes')
WHERE JSON_VALUE([value], '$.Name') = N'PassCycle'

EXECUTE sp_executesql @stm, N'@KeyValue NVARCHAR(MAX) OUTPUT', @KeyValue OUTPUT
DECLARE @KeyValue NVARCHAR(MAX) = N'{"JobID":1005,"ItemID":2,"Prefix":"CC","Version":1,"ItemTypeID":4,"ItemType":"Change Control","StageID":3,"StageName":"Change Control Closure","WorkflowID":1,"WorkflowName":"Change Control Workflow","JobStatus":0,"IsJobArchived":false,"IsJobCanceled":false,"IsJobOnHold":false,"IsJobPhasedOut":false,"RelationID":0,"JobLastUpdatedBy":"G4Admin","JobStartDate":"2019-07-18T08:02:44.737718Z","JobLastUpdated":"2019-07-18T08:02:44.9857249Z","JobDueDate":"2019-07-23T08:02:44.8997205Z","JobEstimatedDate":"2019-07-23T08:02:44.8877188Z","JobCompletedDate":null,"RevisionNumber":1,"DocketNo":390,"JobVariance":"0","Mappings":[],"Groups":[12],"InactiveGroups":null,"Attributes":[{"ID":22,"Name":"WorkflowType","Value":"50","DataType":"Text","IsMaster":true,"ItemData":true,"IsUserGroup":false,"GroupId":null,"ValueString":"Change Control","InactiveValue":null,"InactiveValueString":null},{"ID":18,"Name":"Reason for change","Value":"23","DataType":"Text","IsMaster":true,"ItemData":true,"IsUserGroup":false,"GroupId":null,"ValueString":"CMC change","InactiveValue":null,"InactiveValueString":null},{"ID":12,"Name":"Market","Value":"12","DataType":"Text","IsMaster":true,"ItemData":true,"IsUserGroup":true,"GroupId":null,"ValueString":"Ireland","InactiveValue":null,"InactiveValueString":null},{"ID":14,"Name":"Product Name","Value":"34","DataType":"Text","IsMaster":true,"ItemData":true,"IsUserGroup":false,"GroupId":null,"ValueString":"DROXIA","InactiveValue":null,"InactiveValueString":null},{"ID":13,"Name":"CCDS Impacted?","Value":"15","DataType":"Text","IsMaster":true,"ItemData":true,"IsUserGroup":false,"GroupId":null,"ValueString":"No","InactiveValue":null,"InactiveValueString":null},{"ID":11,"Name":"JobOwner","Value":"G4Admin","DataType":"Text","IsMaster":false,"ItemData":true,"IsUserGroup":false,"GroupId":null,"ValueString":"G4Admin","InactiveValue":null,"InactiveValueString":null},{"ID":50,"Name":"PartNumber","Value":"CC-02-01","DataType":0,"IsMaster":false,"ItemData":false,"IsUserGroup":false,"GroupId":null,"ValueString":"CC-02-01","InactiveValue":null,"InactiveValueString":null},{"ID":50,"Name":"JobInitiator","Value":"G4Admin","DataType":0,"IsMaster":false,"ItemData":false,"IsUserGroup":false,"GroupId":null,"ValueString":"G4Admin","InactiveValue":null,"InactiveValueString":null},{"ID":10,"Name":"TaskLeft","Value":"3","DataType":0,"IsMaster":false,"ItemData":false,"IsUserGroup":false,"GroupId":null,"ValueString":null,"InactiveValue":null,"InactiveValueString":null},{"ID":4,"Name":"ProofCycle","Value":"1","DataType":"Integer","IsMaster":false,"ItemData":true,"IsUserGroup":false,"GroupId":null,"ValueString":"1","InactiveValue":null,"InactiveValueString":null},{"ID":5,"Name":"PassCycle","Value":"1","DataType":"Integer","IsMaster":false,"ItemData":true,"IsUserGroup":false,"GroupId":null,"ValueString":"1","InactiveValue":null,"InactiveValueString":null},{"ID":6,"Name":"PassCycle","Value":"1","DataType":"Integer","IsMaster":false,"ItemData":true,"IsUserGroup":false,"GroupId":null,"ValueString":"1","InactiveValue":null,"InactiveValueString":null}],"LinkedParentJobs":[],"LinkedChildJobs":[],"FullText":null}'

SELECT @KeyValue = JSON_MODIFY(@KeyValue, '$.Attributes[' + [key] + '].Value', '80')
FROM OPENJSON(@keyValue, '$.Attributes')
WHERE JSON_VALUE([value], '$.Name') = N'PassCycle'
注意事项:

DECLARE @KeyValue NVARCHAR(MAX) = N'{"JobID":1005,"ItemID":2,"Prefix":"CC","Version":1,"ItemTypeID":4,"ItemType":"Change Control","StageID":3,"StageName":"Change Control Closure","WorkflowID":1,"WorkflowName":"Change Control Workflow","JobStatus":0,"IsJobArchived":false,"IsJobCanceled":false,"IsJobOnHold":false,"IsJobPhasedOut":false,"RelationID":0,"JobLastUpdatedBy":"G4Admin","JobStartDate":"2019-07-18T08:02:44.737718Z","JobLastUpdated":"2019-07-18T08:02:44.9857249Z","JobDueDate":"2019-07-23T08:02:44.8997205Z","JobEstimatedDate":"2019-07-23T08:02:44.8877188Z","JobCompletedDate":null,"RevisionNumber":1,"DocketNo":390,"JobVariance":"0","Mappings":[],"Groups":[12],"InactiveGroups":null,"Attributes":[{"ID":22,"Name":"WorkflowType","Value":"50","DataType":"Text","IsMaster":true,"ItemData":true,"IsUserGroup":false,"GroupId":null,"ValueString":"Change Control","InactiveValue":null,"InactiveValueString":null},{"ID":18,"Name":"Reason for change","Value":"23","DataType":"Text","IsMaster":true,"ItemData":true,"IsUserGroup":false,"GroupId":null,"ValueString":"CMC change","InactiveValue":null,"InactiveValueString":null},{"ID":12,"Name":"Market","Value":"12","DataType":"Text","IsMaster":true,"ItemData":true,"IsUserGroup":true,"GroupId":null,"ValueString":"Ireland","InactiveValue":null,"InactiveValueString":null},{"ID":14,"Name":"Product Name","Value":"34","DataType":"Text","IsMaster":true,"ItemData":true,"IsUserGroup":false,"GroupId":null,"ValueString":"DROXIA","InactiveValue":null,"InactiveValueString":null},{"ID":13,"Name":"CCDS Impacted?","Value":"15","DataType":"Text","IsMaster":true,"ItemData":true,"IsUserGroup":false,"GroupId":null,"ValueString":"No","InactiveValue":null,"InactiveValueString":null},{"ID":11,"Name":"JobOwner","Value":"G4Admin","DataType":"Text","IsMaster":false,"ItemData":true,"IsUserGroup":false,"GroupId":null,"ValueString":"G4Admin","InactiveValue":null,"InactiveValueString":null},{"ID":50,"Name":"PartNumber","Value":"CC-02-01","DataType":0,"IsMaster":false,"ItemData":false,"IsUserGroup":false,"GroupId":null,"ValueString":"CC-02-01","InactiveValue":null,"InactiveValueString":null},{"ID":50,"Name":"JobInitiator","Value":"G4Admin","DataType":0,"IsMaster":false,"ItemData":false,"IsUserGroup":false,"GroupId":null,"ValueString":"G4Admin","InactiveValue":null,"InactiveValueString":null},{"ID":10,"Name":"TaskLeft","Value":"3","DataType":0,"IsMaster":false,"ItemData":false,"IsUserGroup":false,"GroupId":null,"ValueString":null,"InactiveValue":null,"InactiveValueString":null},{"ID":4,"Name":"ProofCycle","Value":"1","DataType":"Integer","IsMaster":false,"ItemData":true,"IsUserGroup":false,"GroupId":null,"ValueString":"1","InactiveValue":null,"InactiveValueString":null},{"ID":5,"Name":"PassCycle","Value":"1","DataType":"Integer","IsMaster":false,"ItemData":true,"IsUserGroup":false,"GroupId":null,"ValueString":"1","InactiveValue":null,"InactiveValueString":null},{"ID":6,"Name":"PassCycle","Value":"1","DataType":"Integer","IsMaster":false,"ItemData":true,"IsUserGroup":false,"GroupId":null,"ValueString":"1","InactiveValue":null,"InactiveValueString":null}],"LinkedParentJobs":[],"LinkedChildJobs":[],"FullText":null}'

DECLARE @stm nvarchar(max) = N''
SELECT @stm = @stm + CONCAT(
   'SELECT @KeyValue = JSON_MODIFY(@KeyValue, ''$.Attributes[',
   [key],
   '].Value'', ''80''); '
)   
FROM OPENJSON(@keyValue, '$.Attributes')
WHERE JSON_VALUE([value], '$.Name') = N'PassCycle'

EXECUTE sp_executesql @stm, N'@KeyValue NVARCHAR(MAX) OUTPUT', @KeyValue OUTPUT
DECLARE @KeyValue NVARCHAR(MAX) = N'{"JobID":1005,"ItemID":2,"Prefix":"CC","Version":1,"ItemTypeID":4,"ItemType":"Change Control","StageID":3,"StageName":"Change Control Closure","WorkflowID":1,"WorkflowName":"Change Control Workflow","JobStatus":0,"IsJobArchived":false,"IsJobCanceled":false,"IsJobOnHold":false,"IsJobPhasedOut":false,"RelationID":0,"JobLastUpdatedBy":"G4Admin","JobStartDate":"2019-07-18T08:02:44.737718Z","JobLastUpdated":"2019-07-18T08:02:44.9857249Z","JobDueDate":"2019-07-23T08:02:44.8997205Z","JobEstimatedDate":"2019-07-23T08:02:44.8877188Z","JobCompletedDate":null,"RevisionNumber":1,"DocketNo":390,"JobVariance":"0","Mappings":[],"Groups":[12],"InactiveGroups":null,"Attributes":[{"ID":22,"Name":"WorkflowType","Value":"50","DataType":"Text","IsMaster":true,"ItemData":true,"IsUserGroup":false,"GroupId":null,"ValueString":"Change Control","InactiveValue":null,"InactiveValueString":null},{"ID":18,"Name":"Reason for change","Value":"23","DataType":"Text","IsMaster":true,"ItemData":true,"IsUserGroup":false,"GroupId":null,"ValueString":"CMC change","InactiveValue":null,"InactiveValueString":null},{"ID":12,"Name":"Market","Value":"12","DataType":"Text","IsMaster":true,"ItemData":true,"IsUserGroup":true,"GroupId":null,"ValueString":"Ireland","InactiveValue":null,"InactiveValueString":null},{"ID":14,"Name":"Product Name","Value":"34","DataType":"Text","IsMaster":true,"ItemData":true,"IsUserGroup":false,"GroupId":null,"ValueString":"DROXIA","InactiveValue":null,"InactiveValueString":null},{"ID":13,"Name":"CCDS Impacted?","Value":"15","DataType":"Text","IsMaster":true,"ItemData":true,"IsUserGroup":false,"GroupId":null,"ValueString":"No","InactiveValue":null,"InactiveValueString":null},{"ID":11,"Name":"JobOwner","Value":"G4Admin","DataType":"Text","IsMaster":false,"ItemData":true,"IsUserGroup":false,"GroupId":null,"ValueString":"G4Admin","InactiveValue":null,"InactiveValueString":null},{"ID":50,"Name":"PartNumber","Value":"CC-02-01","DataType":0,"IsMaster":false,"ItemData":false,"IsUserGroup":false,"GroupId":null,"ValueString":"CC-02-01","InactiveValue":null,"InactiveValueString":null},{"ID":50,"Name":"JobInitiator","Value":"G4Admin","DataType":0,"IsMaster":false,"ItemData":false,"IsUserGroup":false,"GroupId":null,"ValueString":"G4Admin","InactiveValue":null,"InactiveValueString":null},{"ID":10,"Name":"TaskLeft","Value":"3","DataType":0,"IsMaster":false,"ItemData":false,"IsUserGroup":false,"GroupId":null,"ValueString":null,"InactiveValue":null,"InactiveValueString":null},{"ID":4,"Name":"ProofCycle","Value":"1","DataType":"Integer","IsMaster":false,"ItemData":true,"IsUserGroup":false,"GroupId":null,"ValueString":"1","InactiveValue":null,"InactiveValueString":null},{"ID":5,"Name":"PassCycle","Value":"1","DataType":"Integer","IsMaster":false,"ItemData":true,"IsUserGroup":false,"GroupId":null,"ValueString":"1","InactiveValue":null,"InactiveValueString":null},{"ID":6,"Name":"PassCycle","Value":"1","DataType":"Integer","IsMaster":false,"ItemData":true,"IsUserGroup":false,"GroupId":null,"ValueString":"1","InactiveValue":null,"InactiveValueString":null}],"LinkedParentJobs":[],"LinkedChildJobs":[],"FullText":null}'

SELECT @KeyValue = JSON_MODIFY(@KeyValue, '$.Attributes[' + [key] + '].Value', '80')
FROM OPENJSON(@keyValue, '$.Attributes')
WHERE JSON_VALUE([value], '$.Name') = N'PassCycle'
这两个示例都将修改
JSON
数组中具有匹配条件
JSON\u值([VALUE],'$.Name')=N'PassCycle'
的所有项(而不仅仅是一项)