2012-11-26 3 views
5

У меня есть объект XML. И я хочу десериализовать его в таблицу с использованием T-SQL.
Deserialize XML-объект в T-SQL

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

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

Как я могу хранить эти данные в таблицу, как это:
enter image description here

Спасибо!

+2

Вы не можете. Ваш XML недействителен. – GSerg

+0

что-то не так с вашим xml type = 1 недопустимо xml tag –

ответ

11

Ваш 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 - объясните?

+0

Это 'row_number()', я полагаю. – GSerg

+0

Спасибо, вот что мне нужно !!! – nykolas