10

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

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

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

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

您可以提供的任何代码片段将不胜感激。

4

5 回答 5

14

SQL Server 2005 及更高版本有一个名为“XML”的数据类型,您可以将 XML 存储在其中 - 无类型或使用 XSD 模式键入。

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

马克

于 2009-04-01T04:47:24.463 回答
4

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

于 2009-04-01T04:45:09.727 回答
2

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

于 2009-04-01T04:47:39.143 回答
2

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

您使用节点、值和查询方法来分解它,无论是值还是属性

一些无耻的插播:

于 2009-04-01T06:20:44.300 回答
1

Xml 数据和 Xml 文档可能有不同的含义。当 xml 类型适合数据时,它不会保存格式(删除空格),因此在某些情况下(例如配置文件)最好的选择是 nvarchar。

于 2015-08-25T07:26:25.943 回答