【发布时间】:2010-10-31 10:27:48
【问题描述】:
在 SQL Server 2005 中,我试图查询一个 varchar(MAX) 列,该列的某些行的文本数据超过 8192。然而,在 Management Studio 中,我在 Tools --> Options --> Query结果 --> 结果到文本 --> 每列中显示的最大字符数 = 8192,这是最大值。因此,这些行的截断似乎只是由于文本输出所施加的限制。
我看到解决这个问题的唯一方法是使用 SUBSTRING 函数来抓取前 8000 个字符,然后是接下来的 8000 个字符等等。但这很丑陋且容易出错。
我应该提到 SSIS 和 BCP 不是我的选择。
有人有更好的建议吗?谢谢!
【问题讨论】:
-
您是否关心查询分析器中的输出显示方式?如果您只是用它来查看数据,那么我不会太沉迷于“容易出错”和“丑陋”的代码。如果您将它用于生产工作,那么这完全是另一个问题。
-
Tom:我不只是在看数据。我正在使用查询输出为远程服务器生成新的存储过程调用,因此结果必须是“完美的”。
-
但是为什么要使用 SSMS 来执行查询呢?如果您从程序中执行相同的查询会发生什么?
-
SSMS2008 甚至在我选择输出到文件时截断。哈!!!
-
对我来说最简单的方法是将字符串转换为 xml(如 stackoverflow.com/a/2760023/278044 所示)。 Management Studio 可以配置为允许无限的 XML 大小。
标签: sql-server truncation