在这个实时SQL Server 2008(build 10.0.1600)数据库中,有一个Events
表,其中包含一个text
名为的列Details
.(是的,我意识到这实际上应该是一个varchar(MAX)
专栏,但无论是谁设置这个数据库都没有这样做.)
此列包含非常大的异常日志和我尝试通过SQL Server Management Studio访问的关联JSON数据,但每当我将结果从网格复制到文本编辑器时,它会以43679个字符截断它.
我已经阅读了Internet上的各种位置,您可以将XML数据检索的最大字符数设置Tools > Options > Query Results > SQL Server > Results To Grid
为无限制,然后执行如下查询:
select Convert(xml, Details) from Events
where EventID = 13920
Run Code Online (Sandbox Code Playgroud)
(请注意,数据列根本不是XML.CONVERT
将列添加到XML只是我从谷歌搜索中找到的一种解决方法,其他人习惯于绕过SSMS从一个text
或一varchar(MAX)
列中检索数据的限制.)
但是,在设置上面的选项,运行查询,然后单击结果中的链接后,我仍然会收到以下错误:
无法显示XML.发生以下错误:发生了意外的文件结束.第5行,位置220160.
一种解决方案是增加从服务器检索的用于XML数据的字符数.要更改此设置,请在"工具"菜单上单击"选项".
那么,关于如何访问这些数据的任何想法?将列转换为varchar(MAX)
修复我的困境?
我需要能够为SQL Server 2008中的现有表获取CREATE脚本.我假设我可以通过以某种方式查询sys.tables来执行此操作,但是这不会返回给我CREATE脚本数据.
当数据类型为VARCHAR(MAX)时,SQL Server 2008数据库字段可以包含多少个字符?