Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

sql server 2008 xml-Datei in Tabelle

Sie ignorieren den XML-Namespace, der für das Stammelement definiert ist:

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

Sie müssen Folgendes zu Ihrer Abfrage hinzufügen:

;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);