Sql server SQL SERVER:将查询结果导出为JSON对象

Sql server SQL SERVER:将查询结果导出为JSON对象,sql-server,json,azure-sql-database,Sql Server,Json,Azure Sql Database,我正在使用Azure sql server并尝试以以下格式导出查询结果 所需查询结果: {“结果”:[{…},{…}],“响应”:0} 从这个例子中: 我正在使用此sql,但我不确定如何将另一个响应属性添加为根属性的同级:“results” 当前查询: SELECT name, surname FROM emp FOR JSON AUTO, ROOT('results') 查询的输出: {“结果”:[ {“姓名”:“约翰”,“姓氏”:“多伊”}, {“姓名”:“简”,“姓氏”:“多伊”}]}

我正在使用Azure sql server并尝试以以下格式导出查询结果

所需查询结果:

{“结果”:[{…},{…}],“响应”:0}

从这个例子中:

我正在使用此sql,但我不确定如何将另一个响应属性添加为根属性的同级:“results”

当前查询:

SELECT name, surname
FROM emp
FOR JSON AUTO, ROOT('results')
查询的输出:

{“结果”:[ {“姓名”:“约翰”,“姓氏”:“多伊”}, {“姓名”:“简”,“姓氏”:“多伊”}]}


对JSON路径使用
,而不是对JSON AUTO使用
。请参阅本页的几个示例,包括点分隔的列名和来自选择的查询。此格式没有内置选项,因此最简单的方法可能是手动设置响应格式,如:

declare @resp nvarchar(20) = '20'
SELECT '{"response":"' +
         (SELECT * FROM emp FOR JSON PATH) +
         '", "response": ' + @resp + ' }' 

因为JSON将完成更难的部分(格式化表),您只需要包装它。

我有一个变量'@count'。和'@resp',我需要将其添加到与结果相同的级别。我不知道如何在一个查询中做到这一点。并将其转换为json.FOR json在SQL Azure DB中仍然不可用。您是否在VM中使用SQL 2016 CTP2?