Я хочу написать большой набор данных из базы данных SQL Server 2005, используя BCP (программу массового копирования).
В идеале я хотел бы сделать следующее:
bcp MyDatabase..MyTable OUT STDOUT -c -t, |gzip -c c:\temp\dataset.csv.gz
Однако BCP просто записывает это в буквальный файл с именем STDOUT.
Я также попробовал:
bcp MyDatabase..MyTable OUT CON: -c -t, |gzip -c c:\temp\dataset.csv.gz
но это возвращает и ошибка Error = [Microsoft][SQL Native Client]Unable to open BCP host data-file
.
Итак, я могу создать именованный канал в любом месте? Я видел в Интернете намеки на запуск gzip
с одним концом, привязанным к имени файла, например \\. \Named_pipe - но как это сделать?
Обновление: обратите внимание, что сами Microsoft признают, что они действительно не заботятся об эффективности с SQL Server: http://connect.microsoft.com/SQLServer/feedback/details/337702/support-bcp-out-in-and-bulk- вставить сжатый или названные однотрубную Опорно-на- крайней мере ,