You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

导入JSON文件到SQL Server 2019表执行查询报错求助

问题解决方法

核心错误原因

  • 解析JSON变量需使用OPENJSON()函数,你代码中误写为读取外部数据源的OPENROWSET()函数,该函数不支持传入JSON变量作为参数,是触发@JSON附近语法错误的直接原因
  • WITH关键字附近的报错是前序函数调用语法错误触发的连锁报错,修正函数调用后该问题会同步消失

修正后的完整代码

DECLARE @JSON varchar(max)

-- 读取JSON文件内容到变量,这部分逻辑没问题
SELECT @JSON = BulkColumn
FROM OPENROWSET (BULK 'E:\mytestfile.json' , SINGLE_CLOB) import

-- 改用OPENJSON解析JSON变量
SELECT *
FROM OPENJSON (@JSON)
WITH (   
    [id] int,
    [data_joined] int,
    [email] varchar(100),
    [first_name] varchar(100),
    [last_login_date] int   
)

可选优化建议

  • 如果JSON中data_joined、last_login_date存储的是Unix时间戳,可直接在OPENJSON中转换为日期类型,示例:
    [last_login_date] DATETIME '$.last_login_date'
    
  • 若需要将解析结果写入实体表,在SELECT前补充插入逻辑即可:
    INSERT INTO 你的目标表名 (id, data_joined, email, first_name, last_login_date)
    SELECT *
    FROM OPENJSON (@JSON)
    WITH (   
        [id] int,
        [data_joined] int,
        [email] varchar(100),
        [first_name] varchar(100),
        [last_login_date] int   
    )
    

内容的提问来源于stack exchange,提问作者learning Linix

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.23 19:06:05