0

我已经找到了解决这个问题的各种解决方案,但它们似乎不起作用。我有一个查询,它返回一个包含大约 6 个嵌套行的结果。粗略的形状是:

<ItemGroup> 
  <Item />
  <Item />
  <Item />
  <Item />
</ItemGroup> 

每个项目中有大约 8 个元素。我正在使用 FOR XML AUTO, TYPE 来生成 XML。该查询中有一个嵌套查询以生成内部行。到现在为止还挺好。但是,当我运行查询时,我的 XML总是被修剪为 256 个字符。解决此问题的第一个建议是将 XML 数据更改为 Unlimited(或 5MB,它们都应该足够)以使其在工具、选项、查询结果、SQL Server、结果到网格、XML 数据中的最大返回大小。似乎很明智。没用。

如果我输出到网格,我会收到关于未闭合字符串的错误:

未封闭的文字

我下一次修复的尝试只是将结果输出到文件中。我没有看到任何更改数据量(最大)以返回那里的选项,所以我认为它是无限的。但是,将结果转储到文件会导致完全相同的问题:结果文本中有 1 行 x 256 列。

这可以解决吗?这是 SSMS 2014 中的错误吗?确切的版本是 12.0.2000.8。我的下一步是将结果行发送到 node.js 脚本并在那里操作 XML。

编辑:我通过节点运行查询,我正在使用的整形FOR XML AUTO, TYPE显然是错误的。结果文档为 35MB。但是,如果我在没有整形的情况下运行查询,我会得到一个 9 行的结果集。仍然:即使直接输出到文件,我也无法使用 SSMS 解决这个问题。

4

1 回答 1

0

已经一个月了,我对此没有太大的决心。我真正的解决方案是不使用FOR XML AUTO, TYPE. 不是因为它坏了,而是因为它太容易搞砸并导致长时间的神秘调试。最好手动塑造 XML(在我的例子中是 Node),除非你真的需要了解如何在 SQL 中塑造 XML。如果您好奇我为什么要那样做,请阅读上面的评论。

于 2015-08-18T17:56:13.560 回答