War*_* P 3 sql-server json sql-server-2016
我已经下载并安装了 SQL Server 2016 Community Technology Preview 2.3,如果我理解正确,它应该包含一个名为JSON_VALUE
. (更新:CTP 2.4 已经发布,但也没有提到新的 JSON 功能)
从已经可以使用的 JSON 功能开始,... FOR JSON AUTO
可以在我的SELECT
语句中指定“ ” ,如下所示:
SELECT [ID], [DATA] FROM [dbo].[JSONDEMO] FOR JSON AUTO
Run Code Online (Sandbox Code Playgroud)
上面我的演示查询的结果将是一个包含一列的结果集,具有一些自动生成的名称,例如JSON_F123123123
JSON 格式的值,例如:
[{"ID":"IDVALUE", "DATA":"{ {name:'ramsoft', id:1234}, ... }", ... }]
Run Code Online (Sandbox Code Playgroud)
到目前为止DATA
一切顺利,但如果包含 JSON 数据,您将收到一个包含数据字符串文字的 JSON 文档,即使该字符串文字是有效的 JSON。你实际上可能想要的,或者我想要的,是:
[{"ID":"IDVALUE", "DATA":{ {name:'ramsoft', id:1234}, ... }, ... }]
Run Code Online (Sandbox Code Playgroud)
根据一些 MS 博客帖子,要将 JSON 值作为 JSON 值而不是作为VARCHAR(n)
字符串获取,您应该编写:
SELECT [ID], JSON_VALUE(D.DATA,'$') DATA
FROM [dbo].[JSONDEMO] D FOR JSON AUTO
Run Code Online (Sandbox Code Playgroud)
这不起作用,我收到一个错误:
'JSON_VALUE' is not a recognized built-in function name.
Run Code Online (Sandbox Code Playgroud)
CTP 2.3 中是否提供某种 JSON 值提取,或者在 CTP 3 之前不会存在?
您需要等待 CTP 3 使用OPENJSON
和 之类的东西JSON_VALUE
。这些构造根本没有在 CTP 中提供,包括 CTP 2.4。这并不意味着没有某种方法可以立即获得您想要的结果,但是您可能花费的时间和精力可能不值得,尤其是如果您需要的功能将在下一个可用CTP,应该很快发货。
归档时间: |
|
查看次数: |
1256 次 |
最近记录: |