如何将大型 SQL 查询导入 Visual Studio 数据库

本文关键字:导入 Visual Studio 数据库 查询 SQL 大型 | 更新日期: 2023-09-27 18:32:48

我有一个包含 475k 行(约 120Mb(的大文件,其中包含邮政编码数据,我 postcodedata.nl 从这里下载了这些数据。

我已经使用EntityFramework创建了一个表,并调整了SQL查询,以便能够在Visual Studio中使用它。

当我尝试运行查询时,它会运行一小段时间并输出:

查询已完成,但出现错误。

虽然没有对数据库进行任何更改。

我已经测试了相同的查询,但有 200 行和 10k 行,它工作正常,所以我怀疑错误消息是因为 Visual Studio 没有足够的内存来处理它。

我尝试使用SQL Server Management Studio,但是当我在那里运行代码时,出现以下错误:

内存不足,无法继续执行程序

我也尝试按照其他问题的建议使用 SQLCMD 命令,但使用该命令会引发以下错误:

Msg 701,级别 17,状态 123,服务器 DESKTOP-PUMBLDD''LOCALDB#EE17CAEE,第 5341 行 资源池"内部"中的系统内存不足,无法运行此查询。

我不明白为什么这个查询不会在Visual Studio中运行,因为我可以在PhpMyAdmin中运行它并且它工作得很好。

所以我的问题是如何将这些数据导入我的数据库?

如何将大型 SQL 查询导入 Visual Studio 数据库

如我所见,您的文件具有 CSV 格式。有许多选项可以将CSV导入MS SQL数据库。

  1. SQL Server Management Studio:选择一个数据库,然后选择"任务"-"导入数据"->"平面文件源
  2. ">
  3. SQL:批量插入查询
  4. C#:SqlBulkCopy 类。 MSDN,Direct CSV read,CsvDataReader。

您是否尝试过在 SQL Server Management Studio 中使用 SQL Server 导入和导出向导?右键单击要将数据导入到的数据库,然后选择 Tasks > Import Data... 。可以从多个选项中进行选择作为数据源,包括平面文件。向导将指导您完成这些步骤。

SSMS 不会连接到 localdb,除非使用登录屏幕上的"选项"按钮,完成连接属性,然后在"其他连接属性"选项卡中输入 VS 连接字符串的其余部分(数据源、附加数据库文件名、初始目录等(