Dans SQL Server 2016, je peux générer des résultats de requête sous la forme JSON
comme décrit dans la documentation Formater les résultats de la requête en JSON avec FOR JSON (SQL Server)
SELECT *
FROM x
FOR JSON PATH
Mais je constate que cela n'est pas pris en charge dans SQL Server 2012.
Existe-t-il un moyen intégré de convertir des données tabulaires en données JSON
dans SQL Server 2012?
Pour rendre cette compatibilité croisée, j'aimerais idéalement pouvoir utiliser for json path
dans SQL Server 2012.
Dans SQL Server 2012, vous pouvez utiliser FOR XML
. Pour mon cas, c'était une alternative viable à JSON
, car je passais juste la chaîne à un navigateur.
La prise en charge de JSON était nouvelle dans SQL Server 2016.
Si vous souhaitez convertir des données en JSON, vous avez quelques options:
Vous pouvez jouer avec cela mais changer la mise en forme de votre JSON
. Cela stocke tous les résultats en un seul élément:
$server = 'Test'
$mainquery = sqlcmd -E -S $server -Q "set nocount on; select name,database_id,compatibility_level from sys.databases" -m 10 -h-1
$mainquery | convertto-json #-Depth 3
Alternativement, vous pouvez créer vos propres fonctions comme décrit dans Produire des documents JSON à partir de requêtes SQL Server via TSQL par Phil Factor.