有没有办法直接压缩/压缩SQL查询的结果?

Leg*_*end 1 sql database sql-server ssms sql-server-2008

我一直在使用SSMS倾销相对较大的表.通常的方法是设置Query->Results-To->File'Execute`,选择一个文件并让SQL查询运行.完成后,我通常会压缩文件,然后将其传输到本地计算机.这有明显的问题,主机在夜间SQL查询期间空间不足.

我想知道是否有一种方法可以直接压缩SSMS的输出,而不必等到它从整个查询中转储结果.有什么建议?主机在允许我在其上运行的内容受到很大限制,因此建议只需要最少的第三方软件就可以了.

Rem*_*anu 7

sqlcmd运行查询,并将输出管道输出到命令行zip(您需要安装一个,请参阅什么是Windows的良好tar实用程序?).或者您可以使用可以开箱即用的PowerShell,包括管道输入,请参阅使用Windows PowerShell压缩文件然后打包Windows Vista边栏小工具,这不需要额外的工具,因为PS已经在您的主机服务器上(尽管在第二次阅读我认为PS解决方案,如在链接中,仍然需要首先放弃文件,不能压缩文件).

使用sqlcmd和7zip的示例查询:

sqlcmd -S <DATABASE> -s <COLUMNSEP> -Q "SELECT ..." | .\7za.exe a -si <FILENAME>
Run Code Online (Sandbox Code Playgroud)

请记住使用-Q(运行查询和退出)而不是-q(运行查询),否则这将无效.