sql-server – 在T-SQL中反序列化XML对象

我有一个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列应该是什么 – 小心解释?

dawei

【声明】:淮南站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。