我的解決方案是一個有點迂迴的,但讓我有
(只要輸出小於65535個字符)
:
-
在SQL Management Studio中,設置網格效果發揮到極致65535(工具>選項>查詢結果> SQL服務器>結果到網格>非XML數據)
- 運行查詢,輸出到電網
- 右鍵單擊該結果,選擇「保存結果爲...」和將結果保存到文件中
- 打開該文件在記事本或類似得到輸出
UPDATE:爲了證明這個作品,這裏的一些SQL是選擇單個100000字符列。如果我將網格輸出保存爲csv文件,則所有100,000個字符都不會被截斷。
DECLARE @test nvarchar(MAX), @i int, @line nvarchar(100)
SET @test = ''; SET @i = 100
WHILE @i < 100000
BEGIN
SET @test = @test + STUFF(REPLICATE('_', 98) + CHAR(13) + CHAR(10), 1, LEN(CAST(@i AS nvarchar)), CAST(@i AS nvarchar))
SET @i = @i + 100
END
SELECT @test
注:
- 它似乎沒有任何區別的字符長度設置是什麼,我想orignally。
- 我正在使用SQL 2008 R2(包括服務器和Management Studio)
- 如果長列存儲在局部變量中(如本例中所示)或從中選擇實際的表
你所關注的輸出是如何在查詢分析器中顯示?如果你只是用它來查看數據,那麼我就不會太在意「容易出錯」和「醜陋」的代碼。如果您將其用於生產工作,那麼這完全是另一個問題。 – 2009-06-04 18:23:37
湯姆:我不只是看數據。我正在使用查詢輸出來爲遠程服務器生成新的存儲過程調用,所以結果必須是「完美的」。 – 2009-06-04 18:26:07
但爲什麼使用SSMS來執行查詢?如果從程序執行相同的查詢會發生什麼? – 2009-06-04 18:48:37