问题描述
而是从sqlcmd运行查询,并将输出通过管道传递到命令行zip(您需要安装一个zip,请参阅Windows的tar实用程序是什么?)。或者,您可以使用可以直接使用zip压缩的PowerShell,包括管道输入,请参阅使用Windows PowerShell压缩文件,然后打包Windows Vista Sidebar Gadget,这不需要任何其他工具,因为主机服务器上已经有PS(尽管二读我认为PS解决方案(如链接中所示)首先仍需要放气的文件,无法压缩文件上的内容。
sqlcmd -S <DATABASE> -s <COLUMNSEP> -Q "SELECT ..." | .\7za.exe a -si <FILENAME>
请记住使用-Q
(运行查询并退出),而不要使用-q
(运行查询),否则将无法使用。
解决方法
最近,我一直在使用SSMS转储相对较大的表。通常的方法是设置Query->Results-
To->File
“执行”,选择一个文件并运行SQL查询。完成后,我通常会压缩文件,然后将其传输到本地计算机。这具有明显的问题,即主机在过夜的SQL查询期间空间不足。
我想知道是否有一种方法可以直接压缩SSMS的输出,而不必等到它转储整个查询的结果。有什么建议?主机在允许我在其上运行的功能方面受到很大限制,因此建议使用最少的第三方软件将是一个很好的建议。