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