Comment faire JSON à partir d'une requête SQL dans microsoft SQL 2014

Question: Quelle est la meilleure solution pour générer du JSON à partir d'une requête SQL dans microsoft SQL 2014? J'ai créé une procédure, mais elle est très lente.

Mon Exemple:

DECLARE @customers xml;
DECLARE @json NVARCHAR(max);
SET @customers  =  (SELECT * FROM dbo.Customers FOR XML path, root)
EXEC [dbo].[HTTP_JSON]  @customers, @json

EXEC [dbo].[HTTP_JSON](@Shopping)

Create PROCEDURE [dbo].[HTTP_JSON]
@parameters xml, @response NVARCHAR(max) OUTPUT
WITH EXEC AS CALLER
AS
set @response = (SELECT Stuff(  
  (SELECT * from  
    (SELECT ',
    {'+  
      Stuff((SELECT ',"'+coalesce(b.c.value('local-name(.)', 'NVARCHAR(MAX)'),'')+'":"'+
                    b.c.value('text()[1]','NVARCHAR(MAX)') +'"'

             from x.a.nodes('*') b(c)  
             for xml path(''),TYPE).value('(./text())[1]','NVARCHAR(MAX)')
        ,1,1,'')+'}' 
   from @parameters.nodes('/root/*') x(a)  
   ) JSON(theLine)  
  for xml path(''),TYPE).value('.','NVARCHAR(MAX)' )
,1,1,''))
GO
Avec SQL Server 2016, est originaire de la prise en charge de JSON... Pour cette question, vous ne donnez pas assez de détails: s'il vous Plaît montrer votre entrée. Donner un exemple de @parameters et fournir le résultat attendu (exemple d'un JSON valide construit avec les données réelles de @parameters)

OriginalL'auteur Joachim Langezaal | 2016-10-05