1 2 3 4 5 6 7 8 9 10 11
| DECLARE @FileData XML
SELECT @FileData = BulkColumn FROM OPENROWSET(BULK 'd:\test.xml', SINGLE_BLOB) AS x
INSERT INTO facture(numero) SELECT XmlTable.x.value('@numero', 'VARCHAR(20)') FROM @FileData.nodes('/factures/facture') AS XmlTable(x);
INSERT INTO ligne(facture_ref, designation, montant)
SELECT F.id, XmlLigne.x.value('@designation', 'VARCHAR(20)'), XmlLigne.x.value('@montant', 'DECIMAL(18,2)')
FROM @FileData.nodes('/factures/facture') AS XmlFacture(x)
CROSS APPLY XmlFacture.x.nodes('ligne') AS XmlLigne(x)
INNER JOIN facture AS F ON F.numero = XmlFacture.x.value('@numero', 'VARCHAR(20)') |
Partager