Estructura de XML
<Venta>
<DetalleVenta>
<Cantidad>10</Cantidad>
<PrecioUni>1</PrecioUni>
<SubTotal>10</SubTotal>
<CodVenta>000001</CodVenta>
<CodComprobante>000001</CodComprobante>
</DetalleVenta>
</Venta>
DECLARE @x xml
SELECT @x = P
FROM OPENROWSET(BULK 'C:\XML\XmlDetalleVentas.xml', SINGLE_BLOB) AS Datos(P)
DECLARE @hdoc int
EXEC sp_xml_preparedocument @hdoc OUTPUT,@x
INSERT INTO VentaDetalle
(
Cantidad,
PrecioUni,
SubTotal,
CodVenta,
CodComprobante
)
SELECT * FROM OPENXML(@hdoc, '/Venta/DetalleVenta') --Row Pattern
WITH (
Cantidad int 'Cantidad'
,PrecioUni numeric(18,2) 'PrecioUni'
,SubTotal numeric(18,2) 'SubTotal'
,CodVenta char(11) 'CodVenta'
,CodComprobante char(11) 'CodComprobante'
)
EXEC sp_xml_removedocument @hdoc --Releasing memory