我的解决方案是一个有点迂回的,但让我有
(只要输出小于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