批量将XML数据插入SQL Server

时间:2010-02-15 09:01:18

标签: sql sql-server tsql bulkinsert bcp

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

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

提前致谢...

2 个答案:

答案 0 :(得分:2)

使用bcp的基本语法是:

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

参数采用以下值:

  • table_name 是完全限定的 表的名称。例如,你 可能会使用inventory.dbo.fruits来 将记录插入水果表中, 由数据库所有者拥有,在 库存数据库。
  • 方向表示您是否需要 导入(“在”方向)或导出 (“出”方向)数据。
  • 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,它可以帮助您了解要使用的开关。

答案 1 :(得分:0)

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

  

-N:使用非字符数据的数据的本机(数据库)数据类型和字符数据的Unicode字符执行批量复制操作。此选项提供了-w选项的更高性能替代选项,用于使用数据文件将数据从一个SQL Server实例传输到另一个实例。它不会提示每个字段。传输包含ANSI扩展字符的数据并希望利用纯模式的性能时,请使用此选项。