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

Is it possible to generate both an FMT and a table from a CSV file?

所以我需要一种方法来导入列名、列顺序和列数不同的 CSV。它们将始终为 CSV 格式,当然还以逗号分隔。

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

据我所知,您需要其中之一。例如,您需要 table 才能使用 bcp 实用程序生成 FMT 文件。并且您需要 FMT 文件来动态构建 table.

的创建脚本

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

  1. 将数据作为单个列放入 SQL 服务器(bcp 或使用 t-sql 和要加载的 openrowset、SSIS 等...)。请务必在此 table 中包含作为身份的第二列(我将其称为 "row_nbr")。您将需要它来找到第一行以从文件中的 header 中获取列名。
  2. 解析第一条记录"where row_nbr = 1"得到第header条记录。您将需要一个字符串解析函数(在线查找,或创建您自己的函数)来对每个列名称进行子串化。
  3. 构建动态 SQL 语句以创建新的 table 您刚刚找到的字段数。必须计算长度并使用 通用 "varchar" 数据类型,因为您不知道如何键入 数据。使用上面找到的列名。
  4. 一旦你创建了 table 大小的列,您可以创建格式文件。

我假设,在我的回答中,你很乐意table 做所有这些事情,只是分享了高层次的逻辑流程。如果您需要更多详细信息,我可以添加更多内容。