适用于:
SQL Server
Azure SQL 数据库
Azure SQL 托管实例
Azure Synapse Analytics
Analytics Platform System (PDW)
数据文件中包含的字段的排列顺序可能不同于表中相应列的顺序。 本文介绍修改为容纳其字段顺序与表列不同的数据文件的非 XML 和 XML 格式化文件。 修改后的格式化文件可将数据字段映射到与之相应的表列。 有关其他信息,请查看 使用 bcp (SQL Server) 创建格式化文件。
可以使用非 XML 或 XML 格式化文件,使用 bcp 实用工具 命令、 BULK INSERT 语句或 INSERT ... 将数据文件批量导入表中。SELECT * FROM OPENROWSET 语句。 有关详细信息,请参阅使用格式化文件批量导入数据(SQL Server)。
本文中修改的格式文件的示例基于本文稍后定义的表和数据文件。
以下 Transact-SQL 脚本创建一个名为的测试数据库和一个表 。
以下数据按表所示按相反顺序显示。 使用文本编辑器(如记事本)创建一个空文件 并插入以下数据:
若要从表中批量导入数据,格式化文件必须执行以下操作:
- 将第一个数据字段映射到第一列 。
- 将第二个数据字段映射到第三列 。
- 将第三个数据字段映射到第二列 。
- 将第四个数据字段映射到第四列 。
用于创建格式化文件的最简单方法是使用 bcp 实用工具。 首先,从现有表创建基本格式化文件。 其次,修改基本格式化文件以反映实际数据文件。
有关详细信息,请查看 “使用非 XML 格式化文件”(SQL Server )。 以下命令使用 bcp 实用工具根据架构生成非 XML 格式化文件。 此外,限定符 用于指定字符数据, 用于将逗号指定为字段终止符,而 用于指定使用集成安全性的信任连接。 在命令提示符处输入以下命令:
有关术语的信息,请参阅 非 XML 格式化文件的结构。 在记事本中打开 并执行以下修改:
- 重新排列格式化文件行的顺序,使行的顺序与数据 的顺序相同。
- 确保主机文件字段顺序值是顺序的。
- 确保最后一个格式化文件行之后有回车符。
比较更改:
之前
之后
修改的格式化文件现在可反映:
- 中的第一个数据字段映射到第一列,
- 中的第二个数据字段映射到第三列,
- 中的第三个数据字段映射到第二列,
- 中的第四个数据字段映射到第四列,
有关详细信息,请查看 XML 格式化文件 (SQL Server)。 以下命令使用 bcp 实用工具基于 的架构创建 xml 格式化文件。 此外,限定符 用于指定字符数据, 用于将逗号指定为字段终止符,而 用于指定使用集成安全性的信任连接。 限定符必须用于生成基于 XML 的格式化文件。 在命令提示符处输入以下命令:
有关术语,请查看 XML 格式化文件的架构语法。 在记事本中打开 并执行以下修改:
- 素在格式化文件中声明的顺序 是这些字段出现在数据文件中的顺序。 因此,将 ID 属性为 2 和 3 的 素反转顺序。
- 确保 ID 属性值是顺序的。
- ROW> 素中<素的顺序定义批量操作将其发送到目标的顺序。 XML 格式化文件为每个 素分配了一个本地名称,该名称与批量导入操作的目标表中的列没有关系。 素的顺序与 RECORD> 定义中的<素顺序无关。 每个 素对应一个 素(其 ID 在 素的 SOURCE 属性中指定)。 因此, SOURCE 的值是需要修订的唯一属性。 颠倒 SOURCE 属性 2 和 3 的顺序。
比较更改:
之前
之后
修改的格式化文件现在可反映:
- 与 COLUMN 1 对应的 FIELD 1 映射到第一个表列,
- 与 COLUMN 2 对应的 FIELD 2 重新映射到第三个表列,
- 与 COLUMN 3 对应的 FIELD 3 重新映射到第二个表列,
- 与 COLUMN 4 对应的 FIELD 4 映射到第四个表列,
以下示例使用之前创建的数据库、数据文件和格式化文件。
在命令提示符处,输入以下命令。
在命令提示符处,输入以下命令。
运行以下 Transact-SQL 脚本。
运行以下 Transact-SQL 脚本。
运行以下 Transact-SQL 脚本。
运行以下 Transact-SQL 脚本。
- bcp 实用工具
- 使用格式化文件跳过表列 (SQL Server)
- 使用格式文件跳过数据字段 (SQL Server)
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/bian-cheng-ri-ji/26900.html