적용 대상: SQL Server 2016(13.x) 이상 버전
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics(서버리스 SQL 풀에만 해당)
Microsoft Fabric
Warehouse의 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 >>
]
}
다음은 FOR JSON
절에 ROOT
옵션이 있는 또 다른 예입니다. 다음은 선택적 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 Database 엔진의 JSON에 대해 자세히 알아보기
기본 제공 JSON 지원에 대한 시각적 소개는 다음 비디오를 참조하세요.