Note
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier les répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de changer de répertoire.
S’applique à : SQL Server 2016 (13.x) et versions
ultérieures d’Azure SQL Database AzureSQL Managed Instance
Azure Synapse Analytics (pool SQL serverless uniquement)
Point de terminaison d’analytique SQL dans Microsoft FabricWarehouse dans microsoft Fabric
SQL Database dans Microsoft Fabric SQL Database dans Microsoft Fabric
Utilisez OPENJSON avec un schéma explicite pour retourner une table formatée comme spécifié dans l'expression WITH.
Voici quelques exemples qui utilisent OPENJSON avec un schéma explicite. Pour plus d’informations, consultez OPENJSON (Transact-SQL).
Exemple : mettre en forme la sortie à l’aide de la clause WITH
La requête suivante renvoie les résultats présentés dans le tableau suivant. Notez comment la AS JSON clause renvoie des valeurs en tant qu’objets JSON au lieu de valeurs scalaires dans col5 et array_element.
DECLARE @json NVARCHAR(MAX) =
N'{"someObject":
{"someArray":
[
{"k1": 11, "k2": null, "k3": "text"},
{"k1": 21, "k2": "text2", "k4": { "data": "text4" }},
{"k1": 31, "k2": 32},
{"k1": 41, "k2": null, "k4": { "data": false }}
]
}
}'
SELECT * FROM
OPENJSON(@json, N'lax $.someObject.someArray')
WITH ( k1 int,
k2 varchar(100),
col3 varchar(6) N'$.k3',
col4 varchar(10) N'lax $.k4.data',
col5 nvarchar(MAX) N'lax $.k4' AS JSON,
array_element nvarchar(MAX) N'$' AS JSON
)
Results
| k1 | k2 | col3 | col4 | col5 | array_element |
|---|---|---|---|---|---|
| 11 | NULL | "text" | NULL | NULL | {"k1 » : 11, « k2 » : null, « k3 » : « text"} |
| 21 | "text2" | NULL | "text4" | { « data » : « text4 » } | {"k1 » : true, « k2 » : « text2 », « k4 » : { « data » : « text4 » } } |
| 31 | "32" | NULL | NULL | NULL | {"k1 » : 31, « k2 » : 32 } |
| 41 | NULL | NULL | false | { « data » : false } | {"k1": 41, "k2": null, "k4": { "data": false } } |
Exemple : chargement de JSON dans une table SQL Server.
L’exemple suivant charge l’intégralité d’un objet JSON dans une table SQL Server .
DECLARE @json NVARCHAR(MAX) = '{
"id" : 2,
"firstName": "John",
"lastName": "Smith",
"isAlive": true,
"age": 25,
"dateOfBirth": "2015-03-25T12:00:00",
"spouse": null
}';
INSERT INTO Person
SELECT *
FROM OPENJSON(@json)
WITH (id int,
firstName nvarchar(50), lastName nvarchar(50),
isAlive bit, age int,
dateOfBirth datetime2, spouse nvarchar(50))
En savoir plus sur JSON dans le moteur de base de données SQL
Pour une présentation visuelle de la prise en charge JSON intégrée, consultez les vidéos suivantes :