每月我都会收到需要导入 SQL 的电子表格。我通常做的是使用 SQL Server 导入和导出向导并导入到一个临时表中,然后我在其中调用存储过程来完成导入过程。这一切在我的生产服务器上运行良好,并且在我的开发机器上运行良好,直到上周我全新安装了 Windows 10。现在,我仍然能够导入只有几千行的较小电子表格,但是,如果我尝试从具有 500,000 多行数据的电子表格中导入数据,则“设置源连接”和“设置目标连接”都需要几分钟,然后似乎挂在“复制”上。我检查了日志并运行 SQL Profiler,但没有看到任何有关失败的信息。一世' 我让进程运行了一个多小时并最终将其终止,查看了临时表并显示没有导入任何记录。数据格式很好,因为我可以毫无问题地在生产服务器上导入。
现在这是最重要的......只有当我同时在 Excel 中打开电子表格时,我才能在我的开发服务器上导入这些大工作表,(请注意,对于较小的电子表格,我不需要打开电子表格导入)。打开电子表格后,导入过程可以正常工作,但速度很慢,而且不是一种有效的处理方式。
关于为什么导入仅适用于小型电子表格的任何想法,除非它也在 Excel 中打开的电子表格?
我在 Windows 10 Pro 和 Office 2016 上使用 SQL Server 2008 R2。我还安装了 AccessDatabaseEngine - 2007。
编辑: 我创建了一个 SSIS 包并按照建议运行它,一切都按预期工作。为了让事情变得更奇怪,我通过导入/导出向导并选择立即运行并创建 SSIS,一切都再次按预期工作。我再次浏览了向导,但选择了立即运行(没有创建 SSIS),它仍然挂起复制。我尝试再运行 4 次,如果选择“立即运行”和“创建 SSIS”,每次它都可以工作,但每次只选择“立即运行”(不创建 SSIS)时都会失败。老实说,我很困惑这是如何发生的,并且愿意接受更多建议。