How to convert data to json format in SQL Server 2

2020-03-23 17:36发布

问题:

I am using SQL Server 2008 and want to convert table data into json format. Can I convert it directly through firing query?

回答1:

Built in support for formatting query results is added in SQL Server 2016 and it will be available in Azure Database. In older versions you would need to use CLR or some heavy TSQL like:

  • Producing JSON Documents from SQL Server queries via TSQL


回答2:

I have created a stored procedure that can take your table and output JSON. You can find it at

  • GitHub - SQLTableOrViewToJSON

Once you run the stored procedure, you can output your table by making a call like the following:

EXEC SQLTableOrViewToJSON 'MyTable', 'C:\WhereIStowMyJSON\'


回答3:

The above solutions seem unnecessarily complicated; starting with 2008, SQL Server supports the following syntax (answer from DBA StackExchange)

SELECT * FROM dbo.x FOR JSON AUTO;

The above query returns a single JSON-formatted column that looks like this (assuming dbo.x contains columns col1~col4of corresponding types):

[{"col1":"val1","col2":"val2","col3":5,"col4":"2019-02-11"}]

More details/options here: https://docs.microsoft.com/en-us/sql/relational-databases/json/format-query-results-as-json-with-for-json-sql-server