在这个即时 SQL Server 2008(build 10.0.1600)数据库中,有一个 Events
表,其中包含一个名为 Details
的 text
列。(是的,我知道这实际上应该是一个 varchar(MAX)
列,但是设置这个数据库的人没有这样做。)
此列包含非常大的异常日志和相关的 JSON 数据,我试图通过 SQLServerManagementStudio 访问这些日志和数据,但每当我将结果从网格复制到文本编辑器时,它都会截断为43679个字符。
我在互联网上读到过,你可以将 Tools > Options > Query Results > SQL Server > Results To Grid
中 XML 数据检索的最大字符数设置为 Unlimited,然后执行如下查询:
select Convert(xml, Details) from Events
where EventID = 13920
(注意,数据是列根本不是 XML。将列转换为 XML 仅仅是我从 Google 中发现的一种变通方法,其他人已经使用这种方法绕过了 SSMS 从 text
或 varchar(MAX)
列检索数据的限制。)
但是,在设置上面的选项、运行查询并单击结果中的链接之后,我仍然会得到以下错误:
无法显示 XML。发生了以下错误: 文件发生意外结束。第5行,位置220160。
一种解决方案是增加从服务器检索的 XML 数据字符数。若要更改此设置,请在“工具”菜单上单击“选项”。
那么,知道怎么获取这些数据吗?将列转换为 varchar(MAX)
会解决我的问题吗?