SQL JSON表问题

SQL JSON表问题,sql,Sql,我从一个外部JSON文件导入数据,该文件工作正常,但我还希望包含一个存储当前日期/时间的列,以存储提取数据的时间 CREATE PROCEDURE main.loadJSON AS DECLARE @Details NVARCHAR(MAX) SELECT @Details = BulkColumn FROM OPENROWSET(BULK'C:\Users\Vally\Desktop\persondata.json',SINGLE_CLOB) JSON I

我从一个外部JSON文件导入数据,该文件工作正常,但我还希望包含一个存储当前日期/时间的列,以存储提取数据的时间

CREATE PROCEDURE main.loadJSON
AS 

DECLARE @Details NVARCHAR(MAX)

SELECT @Details = 
    BulkColumn
    FROM OPENROWSET(BULK'C:\Users\Vally\Desktop\persondata.json',SINGLE_CLOB) JSON



    INSERT INTO main.jsontable (dateloaded,name,surname,email,age,balance,country,registered)
    VALUES(GETDATE(),
    (SELECT *
    FROM OPENJSON(@Details,'$.PersonDetails.Person')        
    WITH(
        [Name] NVARCHAR(50)         '$.first_name',
        [Surname] NVARCHAR(50)      '$.last_name',
        [Email] NVARCHAR(50)        '$.email',
        [Age] NVARCHAR(50)          '$.age',
        [Balance] NVARCHAR(50)      '$.balance',
        [Country] NVARCHAR(50)      '$.country',
        [Registered] NVARCHAR(50)   '$.registered'
        )
    )
)
GO
它给了我两个错误

第27行 当子查询未引入EXISTS时,只能在选择列表中指定一个表达式

第13行 INSERT语句中的列多于values子句中指定的值。values子句中的值数必须与INSERT语句中指定的列数匹配


有什么问题吗?

不要使用SELECT*
而是显式指定所有列

如何使用select选择JSON语句?我试着输入$值,但没有成功,它所做的只是输入文本“$。first_name”…etcNevermind,我已经修复了它。如果其他人有这个问题,我只需将[姓名]、[姓氏]放入选择框,谢谢randy:)