将XML数据提取到SQL Server Select语句中

时间:2014-04-22 10:53:05

标签: xml vb.net sql-server-2008

我在Vb.net中有一个DataSet和DataTable,我已将该DataTable值转换为XML,因此我可以在SQL Server中的一个insert语句中编写所有行,而不是一次又一次地调用存储过程数十万行。

这里有示例XML和SQL脚本

DECLARE @MyXML XML
SET @MyXML = '<NewDataSet>
<Table>
  <ColVal>507.6100</ColVal>
</Table>
<Table>
  <ColVal>750.5800</ColVal>
</Table>
<Table>
  <ColVal>328.3600</ColVal>
</Table>
<Table>
  <ColVal>194.7700</ColVal>
</Table>
</NewDataSet>'

SELECT
a.b.value('Table[1]/ColVal[1]','varchar(10)') AS Fruits4
FROM @MyXML.nodes('NewDataSet') a(b)
  1. 结果: 507.6100
  2. 它只返回第一行数据,我想获取所有行。

1 个答案:

答案 0 :(得分:1)

移动您的查询,使子级别为Table(否则Table[1]会将结果限制为一个):

SELECT
a.b.value('ColVal[1]','varchar(10)') AS Fruits4
FROM @MyXML.nodes('NewDataSet/Table') a(b)

SqlFiddle here