In a previous post, I discussed how to use the SqlBulkCopy class along with a SqlDataReader to quickly stream data from one database to another. The reason that you can use a SqlDataReader as a parameter in the WriteToServer method
Streaming Data Between Databases using SqlBulkCopy and SqlDataReader
One little known fact about SqlBulkCopy is that not only can the WriteToServer method use a DataTable, but it can also use any object that implements IDataReader. Since the SqlDataReader object implements the IDataReader interface, it is a perfect candidate