Eventos
31 mar, 23 - 2 abr, 23
Evento de aprendizaje de SQL, Fabric y Power BI más grande. 31 de marzo – 2 de abril. Use el código FABINSIDER para ahorrar $400.
Regístrate hoyEste explorador ya no se admite.
Actualice a Microsoft Edge para aprovechar las características y actualizaciones de seguridad más recientes, y disponer de soporte técnico.
Se aplica a: SQL Server 2016 (13.x) y versiones posteriores
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics (solo grupo de SQL sin servidor)
Use OPENJSON con un esquema explícito para devolver una tabla que tiene el formato especificado en la cláusula WITH.
Estos son algunos ejemplos que utilizan OPENJSON con el esquema explícito. Para obtener más información y más ejemplos, consulte OPENJSON (Transact-SQL).
La siguiente consulta devuelve los resultados mostrados en la tabla siguiente. Observe cómo la cláusula AS JSON hace que los valores se devuelvan como objetos JSON, en lugar de como valores escalares en col5 y 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
)
Resultados
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 } } |
En el ejemplo siguiente se carga un objeto JSON completo en una tabla de 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))
Para obtener una introducción visual a la compatibilidad integrada de JSON en SQL Server y Azure SQL Database, vea los siguientes vídeos:
Eventos
31 mar, 23 - 2 abr, 23
Evento de aprendizaje de SQL, Fabric y Power BI más grande. 31 de marzo – 2 de abril. Use el código FABINSIDER para ahorrar $400.
Regístrate hoyCursos
Módulo
Uso de un grupo de SQL sin servidor de Azure Synapse para consultar archivos en un lago de datos
Certificación
Microsoft Certified: Azure Cosmos DB Developer Specialty - Certifications
Escribe consultas eficaces, crea directivas de indexación, administra y aprovisiona recursos en la API de SQL y el SDK con Microsoft Azure Cosmos DB.
Documentación
Uso de OPENJSON con el esquema predeterminado - SQL Server
Uso de OPENJSON con el esquema predeterminado
Análisis y transformación de datos JSON con OPENJSON - SQL Server
OPENJSON convierte la colección JSON en un conjunto de filas y columnas. Úselo para ejecutar cualquier consulta SQL en los datos devueltos o insertarla en una tabla de SQL Server.
JSON como puente entre NoSQL y los mundos relacionales
En esta sesión controlada por datos, obtenga información sobre cómo las nuevas funciones JSON de SQL Server 2016 permiten cargar texto JSON en tablas, consultar tablas estándar y datos JSON, o exportar contenido de tablas como JSON. Vea lo fácil que puede combinar conceptos relacionales y NoSQL en SQL Server 2016.