是否可以从CSV文件生成FMT和表格?

时间:2019-06-12 16:08:41

标签: sql-server bcp

因此,我需要一种导入CSV的方式,该CSV的名称,列顺序和列数会有所不同。它们将始终为CSV,并且当然以逗号分隔。

是否可以同时生成FMT和CSV文件的临时表创建脚本?

根据我的收集,您需要一个或另一个。例如,您需要该表才能使用bcp实用程序生成FMT文件。而且,您需要FMT文件才能为表动态构建创建脚本。

1 个答案:

答案 0 :(得分:0)

仅使用SQL并动态加载文件文本文件,没有快速的方法。我看到一个选择:

  1. 将数据作为单列输入到SQL Server(将其装入或使用bcp t-sql和openrowset进行加载,SSIS等)。确保在此表中包含第二列,这是身份(我将其称为“ row_nbr”)。您需要使用它来查找第一行,以便从文件的标题中获取列名。
  2. 解析第一个记录“ where row_nbr = 1”以获取标头记录。您将需要一个字符串解析函数(在线查找或创建自己的函数)来对每个列名进行子字符串化。
  3. 构建动态SQL语句以使用已解析的表创建新表 刚找到的字段数。必须计算长度并使用 通用的“ varchar”数据类型,因为您不会输入 数据。使用上面找到的列名称。
  4. 一旦您创建了一个具有正确数量的表 大小的列,则可以创建格式文件。

我的回答是,假设您对所有这些事情都感到满意,只是在高层共享了逻辑流程。如果您需要更多详细信息,我可以添加更多。