【问题标题】:Bulk insert XML data into SQL Server将 XML 数据批量插入 SQL Server
【发布时间】:2011-01-16 21:56:35
【问题描述】:

使用下面的表结构,我将如何创建处理 XML 数据的 bcp 批量插入。从命令行运行很重要。

CREATE TABLE [dbo].[MyTable](
[Id] [uniqueidentifier] NOT NULL DEFAULT (newid()),
[MyXmlField] [xml] NULL

提前谢谢...

【问题讨论】:

  • 您能否提供一些有关输入文件布局的详细信息 - 特别是换行符所在的位置?

标签: sql sql-server tsql bulkinsert bcp


【解决方案1】:

使用 bcp 的基本语法是:

bcp <table_name> <direction> <file_name> <options> 

其中参数采用以下值:

  • table_name 是完全限定的 表的名称。例如,你 可能会使用 inventory.dbo.fruits 来 将记录插入到 fruits 表中, 由数据库所有者拥有,在 库存数据库。
  • 方向表示是否要 导入(“in”方向)或导出 (“出”方向)数据。
  • file_name 是文件的完整路径 文件。例如,您可以导入 文件 C:\fruit\inventory.txt。
  • 选项允许您指定 批量操作的参数。 例如,您可以指定 允许的最大错误数 -m 选项。您还可以使用 -x 选项指定一个 XML 文件 格式。咨询微软的 bcp 完整列表的文档。

需要更多信息才能知道使用什么开关,但应该有点像

bcp database.dbo.MyTable in "C:\folder\xmlfile.xml" -c -T

-c 使用字符数据类型执行操作。
-T 指定 bcp 实用程序使用集成安全性通过可信连接连接到 SQL Server。

这里还有Microsoft's bcp Utility,它应该可以帮助您了解要使用哪些开关。

【讨论】:

    【解决方案2】:

    如果您的文件包含 unicode 字符,请使用 -N 开关。

    -N :对非字符数据使用数据的本机(数据库)数据类型,对字符数据使用 Unicode 字符执行大容量复制操作。此选项提供比 -w 选项更高性能的替代方案,旨在使用数据文件将数据从 SQL Server 的一个实例传输到另一个实例。它不会提示每个字段。当您传输包含 ANSI 扩展字符的数据并且想要利用本机模式的性能时,请使用此选项。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-06
      • 2010-09-24
      相关资源
      最近更新 更多