将JSON数组批量插入SQL Server表中

时间:2018-12-06 06:09:45

标签: sql sql-server

以下是带有输入的示例:

{
    "OUTER": {
                "ABC":"TEST_WB_New","XYZ":"9085"
             },
             {
                "ABC":"TEST_WB1_New","XYZ":"9086"
             },
             {
                "ABC":"TEST_WB2_New","XYZ":"9087"
             }
}

我希望将其逐行插入两列

到目前为止我的尝试:

INSERT INTO my_table (ABC, XYZ) 
    SELECT ABC, XYZ 
    FROM OPENJSON(@json) 
    WITH (ABC NVARCHAR(50), XYZ NVARCHAR(50))

1 个答案:

答案 0 :(得分:0)

尝试类似的方法,请注意json输入字符串中的[[]'数组括号和OPENJSON函数中的'$ .OUTER'。

    DECLARE @JSONINPUT nvarchar(4000) =
    '{
        "OUTER": [{
                    "ABC":"TEST_WB_New","XYZ":"9085"
                 },
                 {
                    "ABC":"TEST_WB1_New","XYZ":"9086"
                 },
                 {
                    "ABC":"TEST_WB2_New","XYZ":"9087"
                 }]
    }';

    SELECT ABC, XYZ 
    FROM OPENJSON(@JSONINPUT,'$.OUTER') 
    WITH (ABC NVARCHAR(50), XYZ NVARCHAR(50))