SÉLECTIONNEZ le nœud valeurs de texte à partir du document xml en TSQL OPENXML

J'ai un document xml que je veux utiliser pour mettre à jour les valeurs dans une procédure stockée. Je peux traiter le XML à l'aide d'OPENXML, mais je suis confus au sujet de l'extraction de l'valeurs que je veux. Chaque ligne dans le fichier xml est un enregistrement de produit et je veux créer une variable pour chaque propriété. Cell0 est l'ID, Cellule2 description etc

DECLARE @idoc int  
DECLARE @doc varchar(1000)  
SET @doc ='
<products>    
 <rows>
  <row>
   <cell>1</cell>
   <cell>BALSAMO DERMOSCENT</cell>
   <cell>1.00</cell>
   <cell>0.00</cell>
   <cell>18.00</cell>
   <cell>18.00</cell>
   <cell>8.00</cell>
   <cell>427</cell>
   <cell>No</cell>
  </row>
  <row>
   <cell>2</cell>
   <cell>BAYTRIL 150 MG 1 CPDO</cell>
   <cell>1.00</cell>
   <cell>0.00</cell>
   <cell>3.50</cell>
   <cell>3.50</cell>
   <cell>8.00</cell>
   <cell>57</cell>
   <cell>No</cell>
  </row>
 </rows>
</products>'
--Create an internal representation of the XML document.
EXEC sp_xml_preparedocument @idoc OUTPUT, @doc
-- Execute a SELECT statement that uses the OPENXML rowset provider.
SELECT    *
FROM       OPENXML (@idoc, '/products/rows/row/cell',1)
with (Col1 varchar(29) 'text()')

L'exécution de la requête ci-dessus retourne 1 enregistrement pour chaque CELLULE dans le xml. Je veux être en mesure de retourner 1 enregistrement par ligne avec des colonnes pour chaque cellule, quelque chose comme:-

Prod       Description              Qty
---------- --------------------     --------
1          BALSAMO DERMOSCENT       1.00  
2          BAYTRIL 150 MG 1 CPDO    1.00

Je suis en utilisant MSSQL 2008

OriginalL'auteur caroig | 2010-12-15