将XML数据保存到SQL Server的最佳方法是什么?

时间:2009-04-01 04:24:29

标签: sql-server xml ado.net etl bcp

是否有一条非常直接的直接路线? (即SQL Server可以读取XML)

或者,最好是解析XML并通过ADO.Net以通常的方式将其作为单独的行或者批量更新进行传输?

我意识到可能存在涉及大型复杂存储过程的解决方案 - 虽然我并不完全反对这一点,但我倾向于将大部分业务逻辑放在C#代码中。我见过使用SQLXMLBulkLoad的解决方案,但它似乎需要相当复杂的SQL代码。

作为参考,我将一次处理大约100行,每行约50个小数据(字符串和整数)。这最终将成为每日批量工作。

非常感谢您提供的任何代码段。

4 个答案:

答案 0 :(得分:11)

SQL Server 2005及更高版本的数据类型称为“XML”,您可以将XML存储在 - 无类型或使用XSD架构键入。

您基本上可以从XML文字字符串中填充XML类型的列,因此您可以轻松地使用普通的INSERT语句并将XML内容填充到该字段中。

马克

答案 1 :(得分:4)

您可以使用函数OPENXML和存储过程sp_xml_preparedocument轻松地将XML转换为行集。

答案 2 :(得分:2)

如果您使用的是SQL Server 2008(或2005),则它具有xml本机数据类型。您可以将XSD架构与xml个变量相关联,然后直接插入xml类型的列中。

答案 3 :(得分:2)

是的,SQL Server 2005及更高版本可以开箱即用地解析XML。

您可以使用节点,值和查询方法将其分解,无论是值还是属性

一些无耻的堵塞: