2011-06-15 294 views

回答

50

在SSMS中, 「查詢」 菜單項...... 「結果」 ... 「結果到文件」

快捷= Ctrl + Shift + F

您可以設置它在全球範圍太

「工具」 ... 「選項」 ... 「查詢結果」 ...... 「SQL服務器」 .. 「默認目標」 下拉

編輯:評論

在SSMS中,「查詢後「菜單項...」SQLCMD「模式

這使您可以像操作一樣運行「命令行」。

在我SSMS快速測試2008

:OUT c:\foo.txt 
SELECT * FROM sys.objects 

編輯,2012年9月

:OUT c:\foo.txt 
SET NOCOUNT ON;SELECT * FROM sys.objects 
+1

謝謝。我實際上正在通過查詢直接執行此操作。因爲我有多個查詢,所以在執行批量查詢時,先前查詢的結果會堆疊起來。 – Legend 2011-06-15 07:01:16

+1

+1天才!這就像一個魅力。只是最後一個請求:是否可以指定分隔符爲逗號而不是簡單的格式化?我的一些值在它們中包含空格,所以默認的格式將使我的解析器非常複雜。 – Legend 2011-06-15 07:17:44

+0

@傳奇:「工具」..等等..「結果到文本」..「自定義分隔符」SSMS中的選項。隻影響新的查詢窗口(嘗試後編輯此評論) – gbn 2011-06-15 07:23:18

10

在SQL Management Studio中,您可以:

  1. 右鍵單擊該結果定格,選擇'Save Result As ...'並保存。

  2. 在工具欄上切換「結果到文本」按鈕。這會在每個查詢運行時提示輸入文件名。

如果您需要使其自動化,請使用bcp工具。

+1

+1感謝您使用bcp工具。當我嘗試它時,它給了我一個錯誤:複製方向必須是'in','out'或'format'。你介意給我一個關於如何使用它從文件中使用SQL查詢的簡短例子嗎? – Legend 2011-06-15 07:12:08

+0

示例:'bcp「SELECT Name,GroupName FROM HumanResources.Department」queryout c:\ department.txt -c -T' – 2011-06-15 07:19:28

+0

如果任何列的長度超過256個字符,請勿使用SSMS方法。它會靜靜地截斷列,或者至少在舊版SS中。 – 2017-06-16 01:26:52

相關問題