我想将查询存储为 JSON 对象。(错误:在 SELECT INTO 语句中不允许使用 FOR JSON 子句。)

SQL*_*L_M 4 t-sql sql-server json

CREATE TABLE #T ( DateColumn DATE, SomeColA VARCHAR (20), Temp INT, 
                  Attribute1 VARCHAR (10), Attribute2 VARCHAR (10) )
INSERT INTO #T VALUES ('20180101', 'A', 8, 'D', NULL)
INSERT INTO #T VALUES ('20180201', 'B', 10, NULL, 'A')
INSERT INTO #T VALUES ('20180301', 'B', 12, NULL, NULL)
INSERT INTO #T VALUES ('20180401', 'A', 14, 'D', 'C')
INSERT INTO #T VALUES ('20180501', 'A', 15, 'E', 'Y')

SELECT DateColumn,  
       SomeColA, 
       Temp, 
       Attribute1, 
       Attribute2
-- INTO #NewTable
FROM #T FOR JSON AUTO
Run Code Online (Sandbox Code Playgroud)

现在我在几页上读到这是不可能的。然而,这些页面不包括的是它是如何工作的。

一定很简单,但我找不到它。

非常感谢!

Sta*_*dii 5

JSON

SQL Server (starting with 2016)
Run Code Online (Sandbox Code Playgroud)

https://docs.microsoft.com/en-us/sql/relational-databases/json/json-data-sql-server?view=sql-server-2017

或将数据库兼容级别提高到 130

例如,使用 CTE 将查询存储为 JSON 对象

;WITH x(a) as 
(
SELECT DateColumn,  
       SomeColA, 
       Temp, 
       Attribute1, 
       Attribute2
FROM #T FOR JSON AUTO
)
SELECT a INTO #b FROM x
Run Code Online (Sandbox Code Playgroud)