我正在调试组织中现有的sproc。它试图返回一个长度为2047字节的XML字符串(使用“for XML auto”)。
当我在SSMS中运行sproc时,返回值出现在结果窗口中。如果我单击该值(显示为超链接),将打开一个新窗口并显示整个字符串。 (顺便说一句,字符串是一个XML元素,所有数据都包含在属性中。不是我的设计,但这就是我正在使用的。)
但是,如果我在结果窗格中查看结果(通过拖出列的宽度),则会截断最后几个字节。我只看到2034个字符。
因为它只有2034个字符,所以它不是SSMS结果窗口的限制(默认为2MB,现在设置为Unlimited)。这是发送到调用此sproc的服务的完全相同的字符串(通过ADO.NET和ExecuteScalar)。
为什么sproc会截断XML?
谢谢, 杰
答案 0 :(得分:2)
一位同事发现这篇名为The XML data row is truncated at 2,033 characters when you use the SqlDataReader object的Microsoft知识库文章提供了解决方案(改为使用ExecuteXmlReader
):