Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

fichier xml sql server 2008 à table

Vous ignorez l'espace de noms XML défini sur l'élément racine :

<xml_objects xmlns="http://www.blank.info/ns/2002/ewobjects">
             ***********************************************

Vous devez ajouter ceci à votre requête :

;WITH XMLNAMESPACES(DEFAULT 'http://www.blank.info/ns/2002/ewobjects')
SELECT 
     xmldata.value('(@item_id)', 'NCHAR') AS item_id       
FROM 
    (SELECT CAST(x AS XML)
     FROM OPENROWSET(BULK 'C:\xmlfile.xml',
     SINGLE_BLOB) AS T(x)) AS T(x)
CROSS APPLY 
     x.nodes('//xml_objects/item_id') AS X(xmldata);