We use xml for large data packages. Pass the xml string to the stored procedure and ask sp to split the xml into a table. Then select into your database from the temp table. We seem to work very well for us.
Edit: As noted in the comments below, the process that converts xml to a table sp_xml_preparedocument
.
declare @idoc int
exec sp_xml_preparedocument @idoc output, @input_xml
-- select into a tmp table from openxml(@idoc, 'xpath_to_your_data')
exec sp_xml_removedocument @idoc
Wes p source
share