如何从多个分隔文本文件在SQL中创建动态表结构?

时间:2013-05-23 06:44:52

标签: sql sql-server excel-vba delimited-text vba

我有大约100,000多个分隔文本文件(它们在每个文件中没有相同数量的列,例如,一些文件有10列,有些文件有20列,依此类推)。我需要将它们全部上传到SQL服务器。请建议我该怎么做?

我还有一个excel电子表格,其中包含存储文件的名称/路径以及每个文本文件中的列数。我不知道如何去做。

提前致谢

1 个答案:

答案 0 :(得分:0)

我假设你能够使用C#(或其他编程语言)来创建一个可以帮助你完成任务的应用程序。该计划应该做到以下几点:

  1. 运行所有文件并确定所需的所有列。

  2. 在SQL Server上创建一个包含程序找到的列的表。为每列设置数据类型varchar(max)

  3. 再次运行所有文件并将数据插入表中。你有两种方法可以去:

    a)逐行插入数据。很慢,但很简单。

    b)如果您使用C#,您可以实施自己的DataReader并使用SqlBulkCopy类将数据批量插入表格

  4. 以下链接可以为您提供帮助:

    http://www.sqlteam.com/article/use-sqlbulkcopy-to-quickly-load-data-from-your-client-to-sql-server

    http://www.michaelbowersox.com/2011/12/22/using-a-custom-idatareader-to-stream-data-into-a-database/

    http://daniel.wertheim.se/2010/11/10/c-custom-datareader-for-sqlbulkcopy/