共用方式為


Transact-SQL 調試程序資訊

每次調試程式在特定 Transact-SQL 語句上暫停執行時,您可以使用各種調試程式視窗來檢視目前的執行狀態。

調試程式 Windows

在調試程式模式中,調試程式會在主要 SQL Server Management Studio 視窗底部開啟兩個視窗。 調試程式會在這兩個視窗中顯示其所有資訊。 每個調試程式視窗都有索引標籤,您可以選取以控制視窗中顯示的資訊集。 左側調試程序視窗包含 [ 局部變數]、[ 監看式1]、[ 監看式2]、[ 監看式3] 和 [ 監看式4 ] 索引卷標。 右側調試程式視窗包含 [呼叫堆棧]、[ 線程]、[ 斷點]、[ 命令視窗] 和 [ 輸出 ] 索引標籤。

備註

上述描述會套用至調試程式視窗的預設位置。 您可以拖曳索引標籤,將它從某個視窗移至另一個視窗,或者您可以取消停駐索引標籤,以建立一個新的視窗,以便隨時隨地放置。

預設情況下,並非所有的索引標籤或視窗都是啟用中的。 您可以使用下列其中一種方式來開啟特定視窗:

  • 在 [ 偵錯] 功能表上,按兩下 [Windows],然後選取您想要的視窗。

  • 偵錯 工具列上,按一下 斷點,然後選取您想要的視窗。

Transact-SQL 表示式

表達式是 Transact-SQL 子句,能評估為單一純量值,例如變數或參數。 左調試程式視窗可以在最多五個索引標籤或視窗中顯示目前指派給表達式的數據值:局部變數、Watch1、Watch2Watch3 和Watch4

[ 局部 變數] 視窗會顯示 Transact-SQL 調試程式目前範圍中局部變數的相關信息。 [ 局部變數 ] 視窗中所列的表達式集會隨著調試程式在程序代碼的不同部分執行而變更。

QuickWatch 和四個監看式視窗中的表達式不限於只列出變數的標識碼。 您可以指定評估為單一值的 Transact-SQL 表示式,例如將數位加入變數,或評估為單一值的SELECT 語句。 範例包括:

  • 變數的名稱,例如 @IntegerCounter。

  • 變數上的算術運算,例如 @IntegerCounter + 1。

  • 兩個字元變數的字串作業,例如 @FirstName + @LastName。

  • 傳回單一值的 SELECT 語句,例如 SELECT CharCol FROM MyTable WHERE PrimaryKey = 1。

您可以使用 [快速監看 式] 視窗來檢視 Transact-SQL 表達式的值,然後將該表達式儲存至 [監看 式] 視窗。 若要在 QuickWatch 中選取運算式,請在 [運算式] 方塊中選取或輸入 表達式 的名稱。

四個 監看 式視窗會顯示您已選取之變數和表達式的相關信息。 監看 視窗中所列的表達式集不會變更,除非您從清單中新增或刪除表達式。

若要將表達式新增至監視視窗,您可以在 [快速監視] 對話框中選取 [新增監視],或在 監視視窗中,於空白資料列的 [名稱] 欄中輸入表達式的名稱。

您可以在 [ 局部變數]、[ 監看式] 或 [ 快速監看 式] 視窗中設定變數的數據值,方法是以滑鼠右鍵按兩下數據列,然後選取 [ 編輯值]。 局部變數 視窗、監看視窗和 快速監看 對話方塊中的 值欄 全都支援文字、XML 和 HTML 數據可視化工具。 可視化工具會以 欄位右側的放大鏡數據提示表示。 您可以使用可視化檢視來檢視與數據類型相符之顯示器中的文字、XML 或 HTML 資料值,例如,在瀏覽器視窗中檢視 XML 檔案。

在偵錯模式中,當您將滑鼠指標移至標識元上方時, 會顯示 [快速諮詢 ] 彈出視窗,其中包含表達式的名稱及其目前值。 如需詳細資訊,請參閱 快速諮詢 (IntelliSense)

中斷點

您可以使用 [斷點 ] 視窗來檢視和管理目前設定的斷點。 如需詳細資訊,請參閱 步驟 Transact-SQL 程序代碼

呼叫堆疊

呼叫堆疊視窗顯示目前的執行位置,並提供關於執行從原始編輯器視窗經過任何 Transact-SQL 模組(函式、預存程式或觸發程式)到達目前執行位置的資訊。 呼叫堆疊視窗中的每列稱作堆疊框架,並代表下列任何一個項目:

  • 目前的執行位置。

  • 從某個模組到另一個模組的呼叫。

  • 從編輯器視窗呼叫 Transact-SQL 模組。

堆疊的順序與模組被呼叫的順序相反。 目前的執行位置位於堆疊頂端,而原始呼叫位於底部。 堆疊框架左邊界的黃色箭號會識別調試程序暫停執行的框架。

[名稱] 欄位記錄下列資訊:

  • 包含呼叫至下一個層級程式代碼行的來源模組。

  • 呼叫堆疊中下一個模組的代碼行。

  • 如果呼叫移至使用參數的預存程式或函式,也會列出所有參數的名稱、數據類型和值。

[ 局部變數 ]、[ 觀察 ] 和 [ 快速觀察 ] 視窗中的表達式會針對目前的堆疊進行評估。 根據預設,目前的堆疊框架是堆疊中最上層框架,其中調試程序暫停執行。 當您將另一個堆疊框指定為目前的框時,會針對新的堆疊框重新評估 [局部變數]、[監視] 和 [快速監視] 視窗中的表達式。 您可以按兩下框架,或單擊框架後選取 切換至框架,來變更目前的堆疊框架。 此時,局部變數監看快速監看視窗中的運算式會針對新框架重新評估。 每當目前的堆疊框架不是堆疊中的頂端框架時,堆疊框架左邊界上的綠色箭號會識別目前的堆疊框架。

當您以滑鼠右鍵按下堆疊框架並選取 [ 移至原始碼] 時,該框架的程式代碼會顯示在 [查詢編輯器] 視窗中。 不過,該框架不會成為當前框架,並且 LocalsWatchQuickWatch 視窗的內容也不會改變。

系統資訊和 Transact-SQL 結果

除錯程式會在 [ 輸出 ] 視窗中列出其狀態和事件訊息。 這包括調試程式附加至其他進程或調試程式線程結束時等資訊。

在偵錯模式中, [結果 ] 和 [ 訊息 ] 索引標籤仍在 [查詢編輯器] 中作用中。 [ 結果] 索引標籤會繼續顯示偵錯會話期間所執行之 Transact-SQL 語句的結果集。 [ 訊息 ] 索引標籤會繼續顯示系統訊息,例如 受影響的 xx 個數據列,以及 PRINT 和 RAISERROR 語句的輸出。

另請參閱

局部變數視窗
監看式視窗
快速檢視對話框
斷點視窗
呼叫堆疊視窗
線程視窗
輸出視窗
Transact-SQL 偵錯工具