2011-07-23 106 views
1

關閉晚了我一直在使用SSMS傾倒相對較大的桌子。通常的方法是設置Query->Results-To->File,'執行',選擇一個文件並讓SQL查詢運行。完成後,我通常會壓縮該文件,然後將其傳輸到本地計算機。這在宿主機器在夜間SQL查詢期間耗盡空間的明顯問題。有沒有辦法直接壓縮/壓縮SQL查詢的結果?

我想知道是否有辦法直接從SSMS壓縮輸出,而不必等到它從整個查詢中轉儲結果。有什麼建議麼?主機在它允許我運行的東西方面受到很大的限制,因此需要最少的第三方軟件的建議會很好。

回答

7

運行sqlcmd中的查詢,並將輸出傳送到命令行zip(您需要安裝一個,請參閱What's a good tar utility for Windows?)。或者你可以使用PowerShell,它可以開箱即用,包括管道輸入,請參閱Compress Files with Windows PowerShell then package a Windows Vista Sidebar Gadget,由於PS已經在主機服務器上,因此不需要額外的工具(儘管在第二次讀取時我認爲PS解決方案,如鏈接,首先仍然需要壓縮文件,不能壓縮在文件中)。使用SQLCMD和7zip的

樣品查詢:

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

記住使用-Q(運行查詢並退出),而不是-q(運行查詢),否則這將無法工作。

+0

+1 - 正是我想要建議的(sqlcmd +命令行zip)。 – Oded

+1

+非常感謝您的建議。我在你的回答中加入了一些信息。希望你不會介意。 – Legend

相關問題