2012-11-26 35 views
5

Tôi đã có một đối tượng XML. Và tôi muốn deserialize nó vào một bảng bằng cách sử dụng T-SQL.
Deserialize đối tượng XML trong T-SQL

<Params> 
    <type = 1> 
     <value> 10 </value> 
    </type> 

    <type = 2> 
     <value> abc </value> 
    </type> 
</Params> 

Làm thế nào tôi có thể lưu trữ dữ liệu này vào một bảng như thế này:
enter image description here

Cảm ơn!

+2

Bạn không thể. XML của bạn không hợp lệ. – GSerg

+0

điều gì đó sai với loại xml = 1 của bạn không phải là thẻ xml hợp lệ –

Trả lời

11

XML của bạn không hợp lệ - nhưng nếu bạn có một cái gì đó như thế này:

<Params> 
    <type ID="1"> 
     <value> 10 </value> 
    </type> 
    <type ID="2"> 
     <value> abc </value> 
    </type> 
</Params> 

sau đó bạn có thể sử dụng câu lệnh XQuery/SQL này để có được những gì bạn đang tìm kiếm:

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) 

Tôi không rõ làm thế nào/những gì các cột id được coi là - chăm sóc để giải thích?

+0

Đó là 'row_number()', tôi giả sử. – GSerg

+0

Cảm ơn, đó là những gì tôi cần !!! – nykolas

Các vấn đề liên quan