【发布时间】:2015-07-13 22:21:55
【问题描述】:
我已经找到了解决这个问题的各种方法,但它们似乎都不起作用。我有一个查询,它返回一个包含大约 6 个嵌套行的结果。大致的形状是:
<ItemGroup>
<Item />
<Item />
<Item />
<Item />
</ItemGroup>
每个项目包含大约 8 个元素。我正在使用 FOR XML AUTO, TYPE 来生成 XML。该查询有一个nested query in it to produce the inner rows。到现在为止还挺好。但是,当我运行查询时,我的 XML always 被修剪为 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 解决这个问题。
【问题讨论】:
-
您是否在进行更改或至少打开一个新的查询窗口后尝试重新启动 SSMS?
-
哇,看看结果(这不是改进,但显然是改变):imgur.com/1r3unTy
-
这通常表明 SSMS 内存不足 AFAIK,或者可能是一些未处理的错误。我之前看到过,通常重新打开 SSMS 会修复它。
-
请发布 SELECT 语句... 256 个字符是文本输出的默认最大大小。您可以尝试在那里设置更高的值。但是当你提到“到网格”时,我假设你得到一个网格结果并尝试点击带下划线的 XML。
-
重启后尝试输出到文件,它仍然被修剪但我得到了更多;修剪量似乎由“结果到文本”选项中的最大列字符控制。最多有 8192 个字符。 WTF,微软的巨大质量检查失败。
标签: sql-server ssms sql-server-2014 ssms-2014