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

发布于 2024-11-25 18:58:32 字数 250 浏览 2 评论 0原文

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

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

Off late I have been dumping relatively large tables using SSMS. The usual way is to set Query->Results-To->File, 'Execute`, choose a file and let the SQL query run. After it finishes, I usually zip the file and then transfer it to my local machine. This has obvious problems of the host machine running out of space during overnight SQL queries.

I was wondering if there is a way to compress the output from SSMS directly without having to wait until it dumps the results from the entire query. Any suggestions? The host machine is pretty restricted in what it allows me to run on it so a suggestion that requires minimal third-party software would be great.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

萝莉病 2024-12-02 18:58:32

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>

请记住使用 -Q(运行查询并退出)而不是 -q(运行查询),否则这将不起作用。

Run the queries from sqlcmd instead and pipe the output into a command line zip (you'll need to install one, see What's a good tar utility for Windows?). Or you can use PowerShell that can zip out-of-the-box, including piped input, see Compress Files with Windows PowerShell then package a Windows Vista Sidebar Gadget, this requires no additional tools as PS is already on your host server (although on second read I think the PS solutions, as in the link, still requires a deflated file first, cannot compress on-the-file).

Sample query using sqlcmd and 7zip:

sqlcmd -S <DATABASE> -s <COLUMNSEP> -Q "SELECT ..." | .\7za.exe a -si <FILENAME>

Remember to use the -Q (run query and exit) and not the -q (run query) or else this won't work.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文