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

时间:2016-02-01 13:48:31

标签: c# sql sql-server visual-studio visual-studio-2015

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

我创建了一个包含EntityFramework的表并调整了SQL查询,以便我可以在Visual Studio中使用它。

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

  

查询已完成但有错误。

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

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

我曾尝试使用SQL Server Management Studio,但是当我运行代码时,我收到以下错误:

  

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

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

  

Msg 701,Level 17,2,State 123,Server DESKTOP-PUMBLDD \ LOCALDB#EE17CAEE,Line 5341   资源池“internal”中的系统内存不足,无法运行此查询。

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

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

2 个答案:

答案 0 :(得分:3)

如我所见,您的文件采用CSV格式。将CSV导入MS SQL数据库有很多选项。

  1. SQL Server Management Studio:选择一个数据库,然后选择任务 - 导入数据 - > Flat File Source
  2. SQL:BULK INSERT query
  3. C#:SqlBulkCopy类。 MSDNDirect CSV readCsvDataReader

答案 1 :(得分:0)

您是否尝试过在SQL Server Management Studio中使用SQL Server导入和导出向导?右键单击要导入数据的数据库,然后选择import assemblyRoutes from 'AssemblyRoutes <Router> <Route> {assemblyRoutes()} </Route> </Router> 。您可以从多个选项中选择作为数据源,包括平面文件。该向导将指导您完成这些步骤。