SQL Server:如何为Activity表的JSON字段设置空Users数组
正确的SQL更新脚本
要将Activities表中Data列的Users字段统一设置为空JSON数组[],可以使用以下SQL语句:
UPDATE Activities SET Data = JSON_MODIFY(Data, '$.Users', JSON_QUERY('[]')) -- 如需更新特定记录,保留WHERE条件;更新所有记录则删除该行 -- WHERE Id = 1
为什么之前的方法无效?
- 直接赋值
'[]'时,SQL Server会将其视为普通字符串,导致最终JSON中Users的值是带引号的"[]",而非JSON数组。 - 使用
JSON_OBJECT()会生成JSON对象{},并非空数组,不符合需求,同时可能因路径解析问题报错。
脚本说明
JSON_QUERY('[]')会将字符串'[]'解析为有效的JSON空数组类型,JSON_MODIFY在接收这个结果时,会将其作为JSON结构插入或替换原有Users字段:
- 对于原本没有
Users字段的记录,会自动添加"Users": []; - 对于已有
Users数组的记录,会将其替换为空数组。
内容的提问来源于stack exchange,提问作者Saurabh Soni
相关产品推荐
相关产品推荐

