ROOT 옵션을 사용하여 JSON 출력에 루트 노드 추가(SQL Server)
적용 대상: SQL Server 2016(13.x) 이상 Azure SQL 데이터베이스 Azure SQL Managed Instance Azure Synapse Analytics (서버리스 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는 이전에 Channel 9에 있던 콘텐츠를 새 플랫폼으로 마이그레이션하고 있습니다. 비디오가 새 플랫폼으로 마이그레이션되면 링크를 업데이트할 예정입니다.
SQL Server 및 Azure SQL 데이터베이스에서 기본 제공 JSON 지원에 대한 시각적 소개는 다음 비디오를 참조하세요.