Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将XML数据提取到SQL Server Select语句中_Xml_Vb.net_Sql Server 2008 - Fatal编程技术网

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

将XML数据提取到SQL Server Select语句中,xml,vb.net,sql-server-2008,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>

我在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)
DECLARE@MyXML
SET@MyXML=
507.6100
750.5800
328.3600
194.7700
'
挑选
a、 b.值('Table[1]/ColVal[1]','varchar(10)')作为结果4
来自@MyXML.nodes('NewDataSet')a(b)
  • 结果:507.6100

  • 它只返回第一行数据,我想获取所有行。

    移动查询,使子级位于
    (否则
    表[1]
    会将结果限制为一行):

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