我正在调试我们组织中现有的存储过程。它尝试返回一个 2047 字节长的 XML 字符串(使用“for XML auto”)。
当我在 SSMS 中运行存储过程时,返回值出现在结果窗口中。如果我单击该值(显示为超链接),则会打开一个新窗口并显示整个字符串。 (顺便说一下,该字符串是一个单一的 XML 元素,所有数据都包含在属性中。不是我的设计,但这就是我正在处理的内容。)
但是,如果我在结果窗格中查看结果(通过拉出列的宽度),则最后几个字节将被截断。我只看到 2034 个字符。
由于它只有 2034 个字符,因此它不是 SSMS 结果窗口的限制(默认为 2MB,现在设置为“无限制”)。这与发送到调用此存储过程的服务的字符串完全相同(通过 ADO.NET 和 ExecuteScalar)。
为什么存储过程会截断 XML?
谢谢,
杰伊
一位同事发现了这篇 Microsoft 知识库文章,标题为使用 SqlDataReader 对象时,XML 数据行被截断为 2,033 个字符 http://support.microsoft.com/kb/310378它提供了解决方案(使用ExecuteXmlReader
反而):
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)