我的一个表在 SQL Server 数据库中有 JSON 数据。我需要向现有 JSON 添加新属性。
表中 JSON 数据示例:
{ "FirstName": "John" }
Run Code Online (Sandbox Code Playgroud)
我需要的是向此列添加另一个属性。
{ "FirstName": "Jonh","City":"Pune" }
Run Code Online (Sandbox Code Playgroud)
我尝试使用 JSON_MODIFY 函数,但它抛出错误。这仅适用于数组吗?
我试过的代码:
update <TableName>
set <jsonColumnName> = JSON_MODIFY(<jsonColumnName>, '$.', JSON_QUERY(N'{ "City":"Pune" }'))
where UserId = 1
Run Code Online (Sandbox Code Playgroud)
错误信息:
JSON 路径格式不正确。意外字符 '.' 位于位置 2。
小智 9
从 JSON 添加、更新和删除属性的示例
示例表和数据
declare @Table table
(JsonColumn varchar(max))
insert into @Table
values
('{"FirstName": "John"}')
select * from @Table
Run Code Online (Sandbox Code Playgroud)
插入新属性
UPDATE @Table
SET JsonColumn=JSON_MODIFY(JsonColumn,'$.City','Pune')
select * from @Table
Run Code Online (Sandbox Code Playgroud)
更新现有属性
UPDATE @Table
SET JsonColumn=JSON_MODIFY(JsonColumn,'$.City','Delhi')
select * from @Table
Run Code Online (Sandbox Code Playgroud)
更新多个现有属性
UPDATE @Table
SET JsonColumn= JSON_MODIFY(JSON_MODIFY(JsonColumn,'$.City','Delhi'), '$.FirstName', 'Mukesh')
select * from @Table
Run Code Online (Sandbox Code Playgroud)
删除现有属性
UPDATE @Table
SET JsonColumn=JSON_MODIFY(JsonColumn,'$.City',null)
select * from @Table
Run Code Online (Sandbox Code Playgroud)
我想你想要这个语法:
UPDATE <TableName>
SET <jsonColumnName>=JSON_MODIFY(<jsonColumnName>,'$.City','Pune')
WHERE UserId=1
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7934 次 |
| 最近记录: |