Quiero escribir un gran conjunto de datos de una base de datos de SQL Server 2005 utilizando BCP (programa de copia masiva).
Idealmente me gustaría hacer lo siguiente:
bcp MyDatabase..MyTable OUT STDOUT -c -t, |gzip -c c:\temp\dataset.csv.gz
Sin embargo, BCP simplemente escribe esto en un archivo literal llamado STDOUT.
También intenté:
bcp MyDatabase..MyTable OUT CON: -c -t, |gzip -c c:\temp\dataset.csv.gz
Pero esto vuelve y error de Error = [Microsoft][SQL Native Client]Unable to open BCP host data-file
.
Entonces, ¿puedo crear una tubería con nombre en cualquier lugar? He visto pistas en la web de alguna manera comenzando gzip
con un extremo atado a un nombre de archivo como \\. \ nombre_pipe - pero como se hace esto?
Actualizar : Tenga en cuenta que los propios Microsoft reconocen que realmente no les importa la eficiencia con SQL Server: http://connect.microsoft.com/SQLServer/feedback/details/337702/support-bcp-out-in-and-bulk-insert-compressed-or-named-pipe-support-at-least