我有一个XML对象.我想使用T-sql将其反序列化为一个表.
- <Params>
- <type = 1>
- <value> 10 </value>
- </type>
- <type = 2>
- <value> abc </value>
- </type>
- </Params>
如何将此数据存储到这样的表中:
谢谢!
解决方法
你的XML无效 – 但如果你有这样的东西:
- <Params>
- <type ID="1">
- <value> 10 </value>
- </type>
- <type ID="2">
- <value> abc </value>
- </type>
- </Params>
然后你可以使用这个XQuery / sql语句来获得你想要的东西:
- DECLARE @XML XML = '<Params>
- <type ID="1">
- <value> 10 </value>
- </type>
- <type ID="2">
- <value> abc </value>
- </type>
- </Params>'
- SELECT
- Type = TypeNode.value('@ID','int'),NodeValue = TypeNode.value('(value)[1]','varchar(50)')
- FROM
- @XML.nodes('/Params/type') AS XTbl(TypeNode)
我不清楚如何/ id id列应该是什么 – 小心解释?