如何查看SSMS中ntext或nvarchar(max)的所有文本?

如何在SQL Server Management Studio中查看NTEXT或NVARCHAR(max)中的所有文本? 默认情况下,它似乎只返回前几百个字符(255?),但有时我只想快速查看整个字段,而不必编写程序来完成。 即使SSMS 2012仍然有这个问题:(

选项(查询结果/ SQL Server /结果到网格页面)

要更改当前查询的选项,请单击“查询”菜单上的“查询选项”,或者右键单击“SQL Server查询”窗口,然后select“查询选项”。

最大字符数检索
input从1到65535之间的数字,以指定将在每个单元格中显示的最大字符数。

如你所见,最大值是64k。 默认值要小得多。

顺便说一句,文本结果有更严重的限制:

每列中显示的最大字符数
该值默认为256.增加此值以显示更大的结果集而不截断。 最大值是8,192。

通过select(结果到网格)该列,然后右键单击,然后将结果保存为CSV文件,我可以从NVARCHAR(MAX)列中获取全文(99,208个字符)。 有趣的是,当我试图运行相同的查询,但启用了结果到文件时,使用结果到文本限制截断了输出。

解决方法@MartinSmith描述为(当前)接受的答案的评论不适合我(尝试查看完整的XML结果时抱怨“The'['字符,hex值0x5B,不能被包含在名字中“)。

我已经写了一个SSMS的加载项,这个问题已经修复了。 您可以使用以下两种方法之一:

您可以使用“复制当前单元格1:1”将原始单元格数据复制到剪贴板:

http://www.ssmsboost.com/Features/ssms-add-in-copy-results-grid-cell-contents-line-with-breaks 复制原始单元格内容

或者,也可以使用“单元格可视化器”function在外部文本编辑器(记事本++或记事本)中打开单元格内容: http : //www.ssmsboost.com/Features/ssms-add-in-results-grid-visualizers

(function允许在任何外部应用程序中打开字段的内容,所以如果你知道它是文本 – 你使用文本编辑器打开它,如果内容是带图片的二进制数据 – select视图为图片。 ): SSMS结果网格可视化器

快速把戏:

SELECT CAST('<A><![CDATA[' + CAST(LogInfo as nvarchar(max)) + ']]></A>' as xml) FROM Logs WHERe IDLog = 904862629 

如果您select“结果到网格”,您会收到一个截断显示您的大值。 但是,如果您从网格中复制该值(或将其拖出),则会复制完整值。