このライブSQL Server 2008(ビルド10.0.1600)データベースにEvents
は、text
という名前の列を含むテーブルがありますDetails
。(はい、これは実際にはvarchar(MAX)
列であるべきだと思いますが、このデータベースをセットアップした人は誰もそうしませんでした。)
この列には、SQL Server Management Studioを介してアクセスしようとしている非常に大きな例外のログと関連するJSONデータが含まれていますが、グリッドからテキストエディターに結果をコピーするたびに、43679文字で切り捨てられます。
インターネット上のさまざまな場所で、XMLデータに対して取得する最大Tools > Options > Query Results > SQL Server > Results To Grid
文字数を無制限に設定して、次のようなクエリを実行できることを確認しました。
select Convert(xml, Details) from Events
where EventID = 13920
(データは列ではなくXMLであることに注意してください。CONVERT
列をXMLに変換することは、SSMSがtext
or varchar(MAX)
列からデータを取得することでSSMSが持っている制限を回避するために他の誰かが使用していたことをグーグルから見つけた回避策にすぎません。)
しかし、上記のオプションを設定してクエリを実行し、結果のリンクをクリックしても、次のエラーが発生します。
XMLを表示できません。次のエラーが発生しました:予期しないファイルの終わりが発生しました。行5、位置220160。
1つの解決策は、XMLデータ用にサーバーから取得する文字数を増やすことです。この設定を変更するには、[ツール]メニューの[オプション]をクリックします。
では、このデータにアクセスする方法について何か考えはありますか?列を変換してvarchar(MAX)
私の問題を修正しますか?