在SQL Server 2016中使用T-SQL修改JSON属性

时间:2017-04-13 10:46:50

标签: sql-server json sql-server-2016

假设我有JSON数据:

DECLARE @json NVARCHAR(4000)
SET @json = 
N'{
    "info":{  
      "type":1,

      "address":{  
        "town":"Bristol",
        "county":"Avon",
        "country":"England"
      },
      "tags":["Sport", "Water polo"]
   },
   "type":"Basic"
}'

是否有任何标准方法可以在SQL Server 2016 T-SQL中操作JSON属性(添加新的,重命名,删除),类似于JObject提供的内容?

2 个答案:

答案 0 :(得分:2)

要回答我自己的问题,使用JSON_MODIFY我可以添加,删除属性。

“重命名”可以通过组合JSON_VALUE&来实现。 JSON_MODIFY方法,实质上是用旧数据添加新属性,然后删除旧属性。

摘录:

-- Rename propety
DECLARE @stats NVARCHAR(100)='{"click_count": 173}'
PRINT @stats
SET @stats= JSON_MODIFY(JSON_MODIFY(@stats,'$.click_count_new', JSON_VALUE(@stats,'$.click_count')) ,'$.click_count', NULL)
PRINT @stats

答案 1 :(得分:2)

要修改数据,必须使用带有JSON文件的JSON_MODIFY语句作为输入,以及必要的属性和新值。 这很容易。 如果要向数据数组添加新值,可以使用关键字追加。如果要删除文件中的任何属性,则需要在松散模式下指定空值。 您还可以在此页http://codingsight.com/sql-server-2016-json-data-modification-part-4/

上找到代码示例