Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/74.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/25.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 2005_Sql_Sql Server_Xml_Tsql_Sql Server 2005 - Fatal编程技术网

将XML转换为表SQL Server 2005

将XML转换为表SQL Server 2005,sql,sql-server,xml,tsql,sql-server-2005,Sql,Sql Server,Xml,Tsql,Sql Server 2005,我想知道如何读取XML数据并将其转换为T-SQL中的表 例如: <t1> <t2> <val>Opel</val> <t3>Merriva</t3> <t3>Zafira</t3> </t2> <t2> <val>Fiat</val> &l

我想知道如何读取XML数据并将其转换为T-SQL中的表

例如:

<t1>
      <t2>
        <val>Opel</val>
        <t3>Merriva</t3>
        <t3>Zafira</t3>
      </t2>
      <t2>
        <val>Fiat</val>
        <t3>Albea</t3>
      </t2>
  </t1>
表2:

id      id_Table1       value
-----------------------------------
1          1            Merriva
2          1            Zafira
3          2            Albea

我没有活动的SQL Server 2005来测试这个男孩,现在是2018年。。。!!!,但我认为,这个查询在如此古老的版本中也适用:

声明@xml= 不 欧宝 梅里瓦 赛飞利 法令 阿尔贝 '; -CTE将返回带有运行索引的CarName以及作为XML节点的相关数据 以汽车为中心 通过选择NULL作为t2\U索引,在订单上方选择行号 ,t2.valueN'val/text[1]',N'nvarchar100'作为t2_val ,t2.将't3'查询为t3_节点 来自@xml.nodesN'/t1/t2'At2 -此部分将使用相关类型数据的运行编号附加所有相关数据 选择汽车。* ,通过选择NULL作为CarValueIndex超订单的行号 ,t3.valueN'text[1]',N'nvarchar100'作为CarValue 将结果写入临时表 来自汽车 外部应用t3_节点。节点't3'位于3; -所有数据都不规范化 从tmpCars中选择*; -此查询将返回父行 选择t2_索引作为CarID ,t2_val AS CarName 来自tmpCars 按t2_指数分组,t2_值; -此查询将返回相关的子数据 选择CarValueIndex作为CarTypeID ,t2_指数为fk_CarID ,CarValue作为CarType 来自TMPCAR; 去 升降台TMPCAR; 如果有机会使用更现代的SQL Server,你真的应该这样做

使现代化 根据,v2008引入了.value和.nodes函数。但我有一个黑暗的记忆,它已经在2005年工作了,可能与一些服务包一起。。。试试看

id      id_Table1       value
-----------------------------------
1          1            Merriva
2          1            Zafira
3          2            Albea