假设我有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提供的内容?
答案 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/
上找到代码示例