XML输出在SQL中被截断

Muh*_*tar 21 xml sql ssms sql-server-2005

我需要以XML格式返回结果集,这样可以正常工作,但是如果增加了记录数,我的xml输出truncated就是我的查询

select t.id,t.name,t.address from test FOR XML AUTO, ROOT('Response'), ELEMENTS
Run Code Online (Sandbox Code Playgroud)

但是我设置了一些选项来增加输出结果集,如..

Tools --> Options --> Query Results --> SQL Server --> Results to Text --> Maximum              
number of characters displayed in each column
Tools --> Options --> Results --> Maximum characters per column
Run Code Online (Sandbox Code Playgroud)

但我仍然无法得到我想要的结果.

请建议我的解决方案

编辑:然而,当我点击XML时,它在另一个查询窗口中打开,此处显示所有xml,但它不返回所有xml而不是截断的xml.

谢谢....

小智 58

请尝试以下方法:

Declare @xmldata xml
set @xmldata = (select ... From test for xml...)
select @xmldata as returnXml
Run Code Online (Sandbox Code Playgroud)

  • 棒极了!注意:当SQL Server 2014 SSMS设置为"查询结果到网格"(ctrl + d)时,工作**仅**.不能"归档"或"发短信".所以我从网格单元格复制/粘贴到我的编辑器中. (4认同)
  • 这让我可以避免使用XmlReader. (2认同)
  • 这个答案对我很有用,应该标记为答案. (2认同)

Axa*_*dax 5

我在管理工作室和xml结果集方面遇到了同样的问题.我通过使用SqlDataReader以编程方式获取输出来解决这个问题.

  • 如果你添加一个例子,我会给你+1 (2认同)

小智 5

这对我有用(SSMS 2012):工具>选项>查询结果> SQL Server>结果到网格:重试的最大字符数:XML数据:无限制。然后我将网格结果保存到文件中。


Vin*_*Vin 5

我遇到过同样的问题。我将查询结果设置更改为无限制,但是没有用。有一个解决方法。它不是很整洁,但是如果您确实想继续使用SQL Server Management Studio并获得结果。调整查询以转换使用以下方式存储的xml:

convert(xml,'<xml><![CDATA[' + cast(MyColumnWithXml as varchar(max)) + ']]></xml>') 
Run Code Online (Sandbox Code Playgroud)

返回完整的文本。请注意,您最终必须进行一些格式化