Sql-Server

如何避免跟踪的文本數據被截斷?

  • June 18, 2020

我有一個跟踪文件,其中包括由伺服器端跟踪創建的 TEXTDATA 列。一些跟踪的查詢很長。

如果我在 Profiler 上重新打開跟踪文件,相關的長查詢將完全顯示 - 它有 340 行文本和 10951 個字元。

但在我將跟踪文件導入 SQL-Server 表後,相關查詢似乎被截斷了。該表有一個由fn_trace_gettable方法創建的 ntext 列。

我使用不同的方法查詢了表:SSMS 中的文本輸出(配置了最大數量的字元)中斷了第 52 行的輸出。SSMS 的文件輸出(*.rpt)也被截斷,這裡查詢在第 250 行被截斷.

所以現在我想知道是否有可能將整個查詢從跟踪文件中取出到 SQL-Server 表中,以及如何?

SSMS 總是截斷長字元串,除非鍵入為 XML,在這種情況下,您可以將其設置為允許無限制。

在此處輸入圖像描述

我通常使用的解決方法(從 Adam Machanic 的解決方法到連接項(網際網路存檔連結))如下

SELECT (SELECT YourTraceDataColumn AS [processing-instruction(x)] FOR XML PATH(''), TYPE)
FROM YourTraceTable

這會添加一些前導 ( <?x) 和尾隨 ( ?>) 字元,但否則會保持數據完整,並且不會用 XML 實體替換字元。

引用自:https://dba.stackexchange.com/questions/140721