替代 SQL Server 2012 中的“FOR JSON”?

Zac*_*ith 5 sql-server sql-server-2012 json

在 SQL Server 2016 中,我可以JSON按照文档Format Query Results as JSON with FOR JSON (SQL Server) 中所述输出查询结果

SELECT * 
FROM x 
FOR JSON PATH
Run Code Online (Sandbox Code Playgroud)

但我发现这在 SQL Server 2012 中不受支持。

JSONSQL Server 2012 中是否有将表格数据转换为数据的内置方法?

为了使这个交叉兼容,我希望能够for json path在 SQL Server 2012 中使用。

Bre*_*zar 6

否。 JSON 支持是 SQL Server 2016 中的新功能。

如果要将数据转换为 JSON,您有几个选择:

  • 像任何其他查询结果一样获取行,并在应用程序层(如 C#、Java 等)中对其进行转换
  • 在存储过程或函数中构建 T-SQL 逻辑以自己将其转换为 JSON(但请记住,您将无法像 2016 年那样使用“FOR JSON PATH”)
  • 构建 CLR 逻辑来做到这一点(同样,不会与“FOR JSON PATH”兼容)


Zac*_*ith 4

在 SQL Server 2012 中,您可以使用FOR XML. 就我而言,这是一个可行的替代方案JSON,因为我只是将字符串传递给浏览器。