在 SQL Server 2016 中调整查询的缓冲区大小

Adjusting the buffer size for a query in SQL Server 2016

我有一个包含超过一百万个条目的 JSON 文件(最初是 MongoDB 文档),将使用 OPENROWSET 将其导入 SQL 服务器 table SQL 服务器中的 BULK() 命令。该查询对于小型 JSON 文件非常有效,但对于较大的文件,它会出现以下错误:

JSON 文本格式不正确。在位置 0 处发现意外字符。

意外字符的值对于不同的 JSON 文件是不同的。我的 JSON 文件以 JSON 数组的形式存储数据。文件大小约为 300 MB。

我认为这个问题是因为在执行查询期间,只有文件的部分内容被加载到缓冲区,因此,JSON 文本的格式似乎不正确SQL服务器。

因此,我现在关心的是调整查询执行的缓冲区大小,以便将文件的全部内容一次加载到缓冲区内存中。

我怀疑问题与缓冲区大小有关。需要格式文件才能导入超过 8000 个字符的列 OPENROWSET(BULK)。如果仍有问题,请将 SQL 语句添加到您的问题中。