使用Vbscript处理和导入SQL服务器的大型csv(500k记录)的最佳方法是什么?

时间:2012-12-31 16:36:57

标签: sql sql-server sql-server-2008 asp-classic vbscript

我的系统需要通过CSV上传导入大量名称和电子邮件地址(仅限两个字段)。

我可以轻松处理上传,在处理导入之前如何验证电子邮件地址。

另外,我怎样才能快速处理这个或作为后台进程而不需要用户观看剧本?

使用Classic ASP / SQL server 2008。

请不要在经典的asp。

中喋喋不休

2 个答案:

答案 0 :(得分:1)

您是否需要通过ASP应用程序进行上传?如果没有,无论你认为哪种脚本语言最舒服,并且能够以最少的编码时间完成这项工作,那么这项工作就是最好的工具。如果您需要用户能够上传到经典ASP应用程序并具有将有效记录插入数据库并拒绝无效记录的可靠过程,则您的选项会更改。

您需要向用户提供反馈吗?就像告诉他们究竟哪些行无效一样?

如果你正在处理第二个场景,我会让asp应用程序只是存储文件,并有另一个进程,.net服务或计划任务或其他东西,进行导入并报告其进度在asp应用程序可以检查的文本文件中。这使您可以使用您熟悉的任何脚本语言来执行此操作,并且您不必处理http请求超时。

如果你谷歌“正则表达式有效的电子邮件”,你可以找到各种正则表达式来识别无效的电子邮件地址。

答案 1 :(得分:0)

在以前的生活中,我曾经通过使用DTS将文件拖到工作表中然后使用批量的SQL命令来完成这项工作。今天,您使用Integration Services

这使您可以非常快速地将数据导入SQL Server,并防止脚本超时,然后您可以使用您喜欢的任何方法(例如,AJAX驱动的批处理,重定向驱动的批处理等)来谨慎处理数据块,或安排将其作为单个批次(SQL Server job)运行,并仅报告结果。

您可能很幸运能够通过上传脚本在一个批处理中处理您的500K行,但我不会有机会。