将FOR XML转换为Varchar(最大)

时间:2012-12-19 17:51:45

标签: sql-server xml ssms for-xml

我有一个返回XML的查询,我想将其转换为varchar。我的查询返回93,643个XML字符。当我尝试将我的xml结果转换为varchar时,我将结果集复制到文本编辑器时只获得了43,479个字符。当我做len(xmlString)时,我得到93,643个字符。

我从post知道varchar(max)最多可包含2 ^ 31个字符和1个字节= 1个字符,但它似乎正在切断我的数据。

XML字符数是否超过1个字节?为什么我无法从我的xml结果中选择所有数据?

CAST((SELECT COLUMNS FROM TABLE FOR XML PATH('Name'), TYPE) AS VARCHAR(MAX)

2 个答案:

答案 0 :(得分:0)

这只是Managementstudio的一个限制 在更大的桌子上有一个测试查询我会被描述为43,479个字符 同一个Query通过ADO在应用程序中提供267089个字符。

答案 1 :(得分:0)

不确定为什么需要将xml数据转换为varchar(max),但如果您只想复制所有数据,则根本不要将其转换为。在这种情况下,在结果窗口中,您将看到一个具有可点击值的单元格(就像Web链接一样)。单击它,您的所有数据将在新窗口中打开,然后您就可以将其保存为文件或只是复制它。希望它有所帮助。