2012-11-26 12 views
5

Ho un oggetto XML. E voglio deserializzare in una tabella usando T-SQL.
Deserializza oggetto XML in T-SQL

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

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

Come faccio a memorizzare questi dati in una tabella come questa:
enter image description here

Grazie!

+2

Non è possibile. Il tuo XML non è valido. – GSerg

+0

qualcosa di sbagliato nel tipo xml = 1 non è valido tag xml –

risposta

11

tuo XML non è valida - ma se si ha qualcosa di simile:

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

allora si potrebbe utilizzare questa istruzione XQuery/SQL per ottenere ciò che stai cercando:

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) 

Non sono chiaro come/cosa dovrebbe essere la colonna id - ci teniamo a spiegare?

+0

È un 'row_number()', presumo. – GSerg

+0

Grazie, questo è quello che mi serve !!! – nykolas

Problemi correlati