適用於:SQL Server
Transact-SQL 偵錯工具可協助您透過調查程式碼的執行階段行為,找出 Transact-SQL 程式碼中的錯誤。 在您將 [資料庫引擎查詢編輯器] 視窗設定為偵錯模式之後,就可以在特定的程式碼行上暫停執行作業,然後檢查這些 Transact-SQL 陳述式所使用或傳回的資訊和資料。
適用於 Visual Studio 的 SQL Server Data Tools 會提供 T-SQL 偵錯。
逐步執行 Transact-SQL 程式碼
Transact-SQL 偵錯工具提供下列選項,可讓您在 [資料庫引擎查詢編輯器] 視窗處於偵錯模式時,逐一瀏覽 Transact-SQL 程式碼:
在個別的 Transact-SQL 陳述式上設定中斷點。
中斷點是指您要暫停執行以便檢查資料的點。 當您啟動偵錯工具時,它會在 [查詢編輯器] 視窗的第一行程式碼上暫停。 若要執行至第一個中斷點,請使用 [繼續]。 您也可以使用 [繼續] 功能,從視窗目前暫停的任何位置執行到下一個中斷點。 您可以編輯中斷點以指定動作,例如中斷點應暫停執行的條件、指向 [輸出] 視窗的資訊,以及變更中斷點的位置。
逐步執行下一個陳述式。
這個選項可讓您逐一導覽一組陳述式,以及在進行的過程中觀察其行為。
逐步執行或不進入預存程序或函數的呼叫。
如果您確定預存程序沒有任何錯誤,就可以不進入此預存程序。 此程序會以完整模式執行,而且結果會傳回程式碼。
如果您想要偵錯預存程序或函數,則可以逐步執行模組。 系統隨即會開啟新的 [資料庫引擎查詢編輯器] 視窗,供填入模組的原始程式碼。 此視窗會處於偵錯模式中,而且執行作業會在模組的第一個陳述式上暫停。 接著,您就可以透過設定中斷點或逐步執行程式碼,逐一導覽模組程式碼。
如需偵錯工具如何讓您瀏覽程式碼的詳細資訊,請參閱 逐步執行 Transact-SQL 程式碼。
檢視偵錯工具資訊
每當偵錯工具在特定的 Transact-SQL 陳述式上暫停執行作業時,您就可以使用下列偵錯工具視窗來檢視目前的執行狀態:
當地人 和 觀察。 這些視窗會顯示目前配置的 Transact-SQL 運算式。 運算式是評估為單一純量運算式的 Transact-SQL 子句。 Transact-SQL 偵錯工具支援檢視參考 Transact-SQL 變數、參數或內建函式 (名稱以 @@ 為開頭) 的運算式。 這些視窗也會顯示目前指派至運算式的資料值。
QuickWatch。 這個視窗會顯示 Transact-SQL 運算式的值,而且可讓您將該運算式儲存至 [監看式] 視窗。
中斷點。 這個視窗會顯示目前已設定的中斷點,而且可讓您管理它們。
呼叫堆疊。 這個視窗會顯示目前的執行位置。 此外,它也會提供有關執行作業如何從原始 [查詢編輯器] 視窗通過任何函數、預存程序或觸發程序而到達目前執行位置的資訊。
輸出。 這個視窗會顯示各種訊息和程式資料,例如偵錯工具的系統訊息。
結果 和 訊息。 「查詢編輯器」視窗上的這些索引標籤會顯示先前執行的 Transact-SQL 陳述式的結果。
已知問題與限制
T-SQL 偵錯工具僅適用於 SQL Server 執行個體。 偵錯工具不支援偵錯在 Azure SQL 資料庫、Azure SQL 受控執行個體或 Fabric 中的 SQL 資料庫上執行的 Transact-SQL 程式碼。
在某些情況下,逐步執行 SQL 腳本時,T-SQL 偵錯工具行醒目提示和中斷點可能會與實際執行點不同步。 該問題可能在多種情況下出現,包括腳本頂部的註釋或 GO 語句後的空行。
Transact-SQL 偵錯工具工作
| 工作描述 | 發行項 |
|---|---|
| 描述如何設定 Transact-SQL 偵錯工具進行遠端偵錯。 | 先設定防火牆規則再執行 Transact-SQL 偵錯工具 |
| 描述如何啟動、停止和控制偵錯工具的作業。 | 執行 Transact-SQL 偵錯工具 |
| 描述如何使用 Transact-SQL 偵錯工具來逐步執行程式碼。 | 逐步執行 Transact-SQL 程式碼 |
| 描述如何使用 Transact-SQL 偵錯工具來逐步執行預存程序程式碼。 | 偵錯預存程序 |
| 描述如何使用偵錯工具來檢視 Transact-SQL 資料 (例如參數和變數) 以及系統資訊。 | Transact-SQL 偵錯工具資訊 |