我找到了解决这个问题的各种解决方案,但它们似乎没有用。我有一个查询返回一个结果,其中包含大约6个嵌套行。粗糙的形状是:
<ItemGroup>
<Item />
<Item />
<Item />
<Item />
</ItemGroup>
每个项目中包含大约8个元素。我正在使用FOR XML AUTO,TYPE来生成XML。该查询具有nested query in it to produce the inner rows。到现在为止还挺好。但是,当我运行查询时,我的XML 总是修剪为256个字符。解决此问题的第一个建议是在工具,选项,查询结果,SQL Server,结果到网格,XML数据中将XML数据更改为无限(或5MB,它们都应该足够)以获得其最大返回大小。 似乎很明智。没工作。
如果输出到网格,我会收到有关未闭合字符串的错误:
我的下一次修复尝试只是将结果输出到文件。我没有看到任何改变数据量(max)的选项,所以我认为它是无限的。但是,将结果转储到文件会导致完全相同的问题:结果文本中有1行x 256列。
这可以修复吗?这是SSMS 2014中的错误吗?确切的版本是12.0.2000.8。我的下一步是将结果行发送到node.js脚本,然后在那里操作XML。
编辑:我通过节点运行查询,而我正在使用FOR XML AUTO, TYPE
进行的整形显然已经过时了。结果文档是35MB。但是如果我在没有整形的情况下运行查询,我会获得9行结果集。仍然:即使直接输出到文件,我也无法用SSMS解决这个问题。
答案 0 :(得分:0)
已经过了一个月,我对此并没有多大帮助。我真正的解决方案是不使用FOR XML AUTO, TYPE
。不是因为它被打破了,而是因为它太容易搞砸并导致长时间的神秘调试。最好手动塑造XML(在我的情况下是Node),除非你真的需要了解如何在SQL中构建XML。如果你好奇我为什么这么做,请阅读上面的评论。