Transact-SQL 偵錯工具資訊
適用於:SQL Server
每當偵錯工具在特定的 Transact-SQL 陳述式上暫停執行作業時,您就可以使用各種偵錯工具視窗來檢視目前的執行狀態。
偵錯工具視窗
在偵錯工具模式中,偵錯工具會在 [查詢編輯器] 視窗旁開啟視窗。 偵錯工具會在選取的視窗中顯示其所有資訊。 每個偵錯工具視窗都具有一些可讓您選取的索引標籤,以便控制哪一組資訊要顯示在視窗中。 [呼叫堆疊]、[中斷點]、[例外設定] 和 [輸出] 索引標籤都包含在單一視窗中。 [監看式 1]、[監看式 2]、[監看式 3] 和 [監看式 4] 索引標籤皆包含在單一視窗中。 [執行緒] 和 [區域變數] 視窗會個別顯示。
注意
先前的描述適用於偵錯工具視窗的預設位置。 您可以拖移索引標籤以在視窗之間移動,也可以取消停駐索引標籤,為所選索引標籤建立新視窗。
根據預設,並非所有索引標籤或視窗都處於使用中狀態。 若要開啟特定視窗,請在 [偵錯] 功能表上選取 [視窗],然後選取您要檢視的視窗。
Transact-SQL 運算式
運算式是可評估為單一純量值的 Transact-SQL 子句,例如變數或參數。 偵錯工具視窗最多可以在五個索引標籤或視窗中顯示目前指派至運算式的資料值:[區域變數]、[監看式 1]、[監看式 2]、[監看式 3] 和 [監看式 4]。
[區域變數] 視窗會顯示 Transact-SQL 偵錯工具目前範圍中的區域變數資訊。 [區域變數] 視窗中所列的這組運算式會隨著偵錯工具逐步執行不同的程式碼部分而變更。
四個 [監看式] 視窗中的運算式皆不限於單純列出變數的識別碼。 您可以指定 Transact-SQL 運算式,其可評估為單一值,例如將數字加入變數中;或是可評估為單一值的 SELECT 陳述式。 範例包括:
變數的名稱,例如 @IntegerCounter。
變數上的算術運算,例如 @IntegerCounter + 1。
兩個字元變數的字串作業,例如 @FirstName + @LastName。
傳回單一值的 SELECT 陳述式,例如 SELECT CharCol FROM MyTable WHERE PrimaryKey = 1。
四個 [監看式] 視窗會顯示有關已選取之變數和運算式的資訊。 在您於清單中加入或刪除運算式之前,[監看式] 視窗中所列的這組運算式都不會變更。
若要將運算式加入 [監看式] 視窗,請在 [監看式] 視窗中空白資料列的 [名稱] 資料行中輸入運算式的名稱。 您也可以從 [偵錯] 功能表中選取 [快速監看式]、輸入運算式,然後選取 [新增監看式]。
您可以在 [區域變數]、[監看式] 或 [快速監看式] 視窗中,以滑鼠右鍵按一下資料列,然後選取 [編輯值],藉以設定變數的資料值。 [區域變數] 視窗、[監看式] 視窗和 [快速監看式] 對話方塊中的 [值] 資料行支援都文字、XML 和 HTML 資料視覺化檢視。 這些視覺化檢視是以 [值] 資料行最右邊的放大鏡資料提示表示。 您可以使用這些視覺化檢視,在符合資料類型的顯示中檢視文字、XML 或 HTML 資料值,例如在瀏覽器視窗中檢視 XML 檔。
在偵錯模式中,當您將滑鼠指標移到識別碼上方時,[快速諮詢] 快顯就會顯示運算式的名稱及其目前值。 如需詳細資訊,請參閱快速資訊 (IntelliSense)。
中斷點
您可以使用 [中斷點] 視窗來檢視和管理中斷點。 如需詳細資訊,請參閱 逐步執行 TRANSACT-SQL 程式碼。
呼叫堆疊
[呼叫堆疊] 視窗會顯示目前的執行位置,以及執行作業如何透過任何 Transact-SQL 模組 (函數、預存程序或觸發程序) 從原始編輯器視窗到達目前執行位置的資訊。 [呼叫堆疊] 視窗中的每個資料列都稱為堆疊框架,而且代表下列任何一個項目:
目前的執行位置。
從某個模組到另一個模組的呼叫。
從編輯器視窗到 Transact-SQL 模組的呼叫。
堆疊的順序與呼叫模組的順序相反。 目前的執行位置位於堆疊的頂端,而原始的呼叫則位於底部。 堆疊框架左邊界的黃色箭頭可識別偵錯工具暫停執行作業的所在框架。
[名稱] 資料行會記錄下列資訊:
包含向下呼叫至下一層之程式碼行的來源模組。
在堆疊上呼叫下一個模組的程式碼行。
如果呼叫移至使用參數的預存程序或函數,系統就會一併列出所有參數的名稱、資料類型和值。
[區域變數]、[監看式] 和 [快速監看式] 視窗中的運算式都會針對目前的堆疊框架進行評估。 根據預設,目前的堆疊框架是堆疊中的最上層框架,也就是偵錯工具暫停執行所在的框架。 當您將其他堆疊框架指定成目前的框架時,[區域變數]、[監看式] 和 [快速監看式] 視窗中的運算式就會針對新的堆疊框架重新評估。 您可以按兩下框架,或按一下框架,然後選取 [切換至框架],藉以變更目前的堆疊框架。 此時,[區域變數]、[監看式] 和 [快速監看式] 視窗中的運算式就會針對新的框架重新評估。 每當目前的堆疊框架不是堆疊中的最上層框架時,堆疊框架左邊界的綠色箭頭可識別目前的堆疊框架。
當您以滑鼠右鍵按一下堆疊框架,然後選取 [移至原始程式碼] 時,該框架的程式碼就會顯示在 [查詢編輯器] 視窗中。 不過,該框架不會成為目前的框架,而且 [區域變數]、[監看式] 和 [快速監看式] 視窗的內容不會變更。
系統資訊和 Transact-SQL 結果
偵錯工具會在 [輸出] 視窗中列出其狀態和事件訊息。 視窗會包括一些資訊,例如偵錯工具附加至其他處理序的時間,或是偵錯工具執行緒結束的時間。
在偵錯模式中,[結果] 和 [訊息] 索引標籤仍然會在 [查詢編輯器] 中處於使用中狀態。 [結果] 索引標籤會繼續顯示來自偵錯工作階段期間執行的 Transact-SQL 陳述式結果集。 [訊息] 索引標籤會繼續顯示系統訊息,例如受影響的資料列數量,以及 PRINT 和 RAISERROR 陳述式的輸出。