我如何使用SQL服务器将select变成另一个table?

How do I use SQL Server to select into another table?

我正在整合 Web 服务。我正在用一个包含数据的调用替换对该服务的多个调用。

我创建了一个 table:

CREATE TABLE InvResults 
(
    Invoices nvarchar(max),
    InvoiceDetails nvarchar(max),
    Products nvarchar(max)
);

我用了(max),因为我不知道此时json会变得多复杂。

我需要像这样做一些选择(这是伪代码,不是实际的 SQL):

SELECT 
    (SELECT * 
     INTO InvResults for Column Invoices
     FROM MyInvoiceTable
     WHERE SomeColumns = 'someStuffvariable'
     FOR JSON PATH, ROOT('invoices')) AS invoices;

SELECT 
    (SELECT * 
     INTO InvResults for Column InvoiceDetails
     FROM MyInvoiceDetailsTable
     WHERE SomeColumns = 'someStuffvariable'
     FOR JSON PATH, ROOT('invoicedetails')) AS invoicedetails;

我不知道如何格式化它,我的 google 技能在这一点上让我失望了。我知道我可能想使用 UPDATE 语句,但我不确定如何结合我的其余要求来执行此操作。我正在探索 How do I UPDATE from a SELECT in SQL Server? 但我仍处于停顿状态。

最终结果应该是 table "InvResults",其中 3 列包含一行 Select 语句的结果,如 JSON。列名的定义应与 json 根对象相同。

INSERT INTO InvResults(Invoices,InvoidesDetails)
SELECT 
    (SELECT * 
     INTO InvResults for Column Invoices
     FROM MyInvoiceTable
     WHERE SomeColumns = 'someStuffvariable'
     FOR JSON PATH, ROOT('invoices')) 
,
    (SELECT * 
     INTO InvResults for Column InvoiceDetails
     FROM MyInvoiceDetailsTable
     WHERE SomeColumns = 'someStuffvariable'
     FOR JSON PATH, ROOT('invoicedetails')) 
;

因为 SELECT.. FOR JSON 仅返回上面 1 行。

第三个字段很容易添加,但留给自己做