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

如何从多个分隔文本文件在SQL中创建动态表结构?,sql,sql-server,excel,delimited-text,vba,Sql,Sql Server,Excel,Delimited Text,Vba,我有大约100000多个带分隔符的文本文件(它们在每个文件中的列数不同,例如,有些文件有10列,有些文件有20列,以此类推)。我需要将它们全部上传到SQL server。请建议我怎么做 我还有一个excel电子表格,列出了文件存储的名称/路径以及每个文本文件中的列数。我不知道该怎么做 提前感谢我假设您能够使用C#(或其他编程语言)创建一个应用程序来帮助您完成任务。程序应执行以下操作: 运行所有文件并确定所需的所有列 在SQL server上创建包含程序找到的列的表。为每列设置数据类型varcha

我有大约100000多个带分隔符的文本文件(它们在每个文件中的列数不同,例如,有些文件有10列,有些文件有20列,以此类推)。我需要将它们全部上传到SQL server。请建议我怎么做

我还有一个excel电子表格,列出了文件存储的名称/路径以及每个文本文件中的列数。我不知道该怎么做


提前感谢

我假设您能够使用C#(或其他编程语言)创建一个应用程序来帮助您完成任务。程序应执行以下操作:

  • 运行所有文件并确定所需的所有列

  • 在SQL server上创建包含程序找到的列的表。为每列设置数据类型
    varchar(max)

  • 再次运行所有文件并将数据插入表中。有两种方法可供选择:

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

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

  • 以下是一些可以帮助您的链接:


    在SQL列中,需要数据类型和名称。你有没有任何东西存储在任何地方,告诉你这应该是什么?我建议您将所有文件作为一个VARCHAR列加载到临时暂存表中。然后使用一些VBA或动态SQL来读取临时暂存表中的数据,以创建一些动态SQL,从而创建一个真实的表来将数据复制到其中。很抱歉,除了Excel/SQL/VBA之外,我无法访问任何其他内容。命令提示符也被阻止了。也许,你可以在VBA上写,但这很难