Quick post on how to use BCP with powershell. Adjust options to suit your needs.
Import-Module SqlPS -DisableNameChecking $query = "SELECT * FROM TABLE" try{ $srcConn = New-Object System.Data.SqlClient.SqlConnection("PersistSecurityInfo = true;Server=Server1;Database=DBName;Integrated Security=True;Application Name=PowerShell_BCP"); $destConn = New-Object System.Data.SqlClient.SqlConnection("PersistSecurityInfo = true;Server=Server2;Database=DBName;Integrated Security=True;Application Name=PowerShell_BCP"); $srcCommand = New-Object System.Data.SqlClient.SqlCommand($query, $srcConn); $destBulk = New-Object System.Data.SqlClient.SqlBulkCopy($destConn); $destBulk.BulkCopyTimeout = 0; $destBulk.BatchSize = 1000 $destBulk.DestinationTableName = 'DestTable' $srcConn.Open(); $destConn.Open(); $results = $srcCommand.ExecuteReader(); $destBulk.WriteToServer($results); $srcConn.Close(); $destConn.Close(); } catch{ $_ | fl -Force }