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

将JSON文件导入SQL Server:导入后数据存储位置咨询

关于你提供的SQL代码的说明

这段SQL代码并没有将JSON数据导入到任何数据库表中,它只是读取JSON文件内容并解析成查询结果集——执行后只会在SQL查询工具的结果窗口展示数据,不会把数据持久化存储到数据库的表里面。

为什么找不到表名?

因为代码里只有SELECT查询逻辑,完全没有INSERT INTO或SELECT ... INTO这类将数据写入表的语句:

  • 第一步用OPENROWSET(BULK ...)把JSON文件内容读到变量@JSON里
  • 接着用OPENJSON解析JSON的层级结构,通过OUTER APPLY关联嵌套的Procedures数组,最终返回扁平化的查询结果

如果要把数据存储到表中,需要修改代码:

比如用SELECT ... INTO直接创建新表并插入数据:

DECLARE @JSON varchar(max)

SELECT @JSON = BulkColumn
FROM OPENROWSET (BULK 'C:\SQL\Walt\ClientReportData_02172024_012817.json', SINGLE_CLOB) import

-- 新建表并插入数据,这里的dbo.CompanyProcedureData就是你指定的表名
SELECT *
INTO dbo.CompanyProcedureData
FROM OPENJSON (@JSON)
WITH (
--Company:
CompanyKey_Company varchar (255) '$.Company.CompanyKey'
,CompanyName varchar (255) '$.Company.CompanyName'
,EIN varchar (255) '$.Company.EIN'
,MaNumber varchar (255) '$.Company.MaNumber'
,ServiceLocation varchar (255) '$.Company.ServiceLocation'

,ProcJson NVARCHAR(MAX) '$.Procedures' AS JSON
) AS oj

OUTER APPLY
        OPENJSON(oj.ProcJson)
            WITH
            (
            --Procedures:
,CompanyKey_Proc varchar (255) '$.CompanyKey'
,ClientKey_Proc varchar (255) '$.ClientKey'
,ClaimKey_Proc varchar (255) '$.ClaimKey'
,ProcedureCode varchar (255) '$.ProcedureCode'
,PlaceOfService varchar (255) '$.PlaceOfService'
,FundingType varchar (255) '$.FundingType'
,IsResidential varchar (255) '$.IsResidential'
,CostCenter varchar (255) '$.CostCenter'
,DenialCode varchar (255) '$.DenialCode'
,UnitOfMeasure varchar (255) '$.UnitOfMeasure'
,PaidUnits varchar (255) '$.PaidUnits'
,Rate varchar (255) '$.Rate'
) 

要是你已经有现成的目标表,就用INSERT INTO ... SELECT ...格式:

INSERT INTO dbo.你的目标表名 (列名1, 列名2, ...)
SELECT 对应解析出的列名1, 对应解析出的列名2, ...
-- 后面跟原代码里的OPENJSON解析逻辑部分

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 02:22:33