适用于:
SQL Server 2016 (13.x) 及更高版本
Azure SQL 数据库
Azure SQL 托管实例
若要将一个顶层元素添加到
FOR JSON
子句的 JSON 输出中,请指定
ROOT
选项。
如果你没有指定
ROOT
选项,则 JSON 输出不会包括根元素。
下表展示了在指定和未指定
ROOT
选项的情况下
FOR JSON
子句的输出。
下表中的示例假定可选自变量
RootName
为空。 如果你提供了根元素的名称,则此值会替换示例中的值
root
。
未指定
ROOT
选项
<<json properties>>
<<json array elements>>
指定
ROOT
选项
"root": {
<<json properties>>
"root": [
<< json array elements >>
下面又通过一个示例展示了在指定
ROOT
选项的情况下
FOR JSON
子句的输出。 此示例指定了可选自变量
RootName
的值。
SELECT TOP 5
BusinessEntityID As Id,
FirstName, LastName,
Title As 'Info.Title',
MiddleName As 'Info.MiddleName'
FROM Person.Person
FOR JSON PATH, ROOT('info')
"info": [{
"Id": 1,
"FirstName": "Ken",
"LastName": "Sánchez",
"Info": {
"MiddleName": "J"
"Id": 2,
"FirstName": "Terri",
"LastName": "Duffy",
"Info": {
"MiddleName": "Lee"
"Id": 3,
"FirstName": "Roberto",
"LastName": "Tamburello"
"Id": 4,
"FirstName": "Rob",
"LastName": "Walters"
"Id": 5,
"FirstName": "Gail",
"LastName": "Erickson",
"Info": {
"Title": "Ms.",
"MiddleName": "A"
结果(未指定根)
"Id": 1,
"FirstName": "Ken",
"LastName": "Sánchez",
"Info": {
"MiddleName": "J"
"Id": 2,
"FirstName": "Terri",
"LastName": "Duffy",
"Info": {
"MiddleName": "Lee"
"Id": 3,
"FirstName": "Roberto",
"LastName": "Tamburello"
"Id": 4,
"FirstName": "Rob",
"LastName": "Walters"
"Id": 5,
"FirstName": "Gail",
"LastName": "Erickson",
"Info": {
"Title": "Ms.",
"MiddleName": "A"
详细了解 SQL Server 和 Azure SQL 数据库中的 JSON
Microsoft 视频
此部分中的某些视频链接在此时可能不起作用。 Microsoft 会将以前在第 9 频道上的内容迁移到新平台。 随着视频迁移到新平台,我们将更新链接。
有关 SQL Server 和 Azure SQL 数据库中内置 JSON 支持的视频介绍,请观看以下视频:
JSON 充当 NoSQL 和关系环境之间的桥梁
FOR 子句 (Transact-SQL)