【发布时间】:2019-09-13 07:11:12
【问题描述】:
我正在阅读microsoft docs ms sql JSON options
我想检查我的列 Settings 是否是 nvarchar,我放了一些 JSON,以及该 JSON 是否包含属性 name。
可行吗?
类似:
DECLARE @info NVARCHAR(100)='{"name":"John","skills":["C#","SQL"]}'
IF (ISJSON(@info) > 0)
BEGIN
-- if (@info contains `$.name`)
--begin
-- SET @info=JSON_MODIFY(@info,'$.name','Mike')
--end
-- else
--begin
-- SET @info=JSON_MODIFY(@info,'$.name','Mike')
--end
END
我需要检查 JSON 属性是否存在,如果存在则更新值,如果不存在则插入具有预定义值的属性。
【问题讨论】:
-
SSMS 只是一个客户端工具。它不影响查询的运行方式,最新版本是 18.2。我怀疑你的意思是 SQL Server 2017?
-
@PanagiotisKanavos 是的,所以?我没提到 ssms?
-
至于检查和修改,您可以像更新任何其他数据一样执行此操作 - 不是使用
IF,而是使用WHERE中的条件。如果要检查特定属性的存在,则无需先使用 ISJSON。使用JSON_VALUE并检查其返回值 -
你使用了我删除的 SSMS、SSMS-2017 标签。
标签: sql json sql-server tsql sql-server-2017