執行 Transact-SQL 偵錯工具

適用于:SQL Server (所有支援的版本)

開啟 Database Engine 查詢編輯器 視窗之後,您可以啟動 Transact-SQL 偵錯工具。 然後,您可以在偵錯模式中執行 Transact-SQL 程式碼,直到停止偵錯工具為止。 您可以設定選項來自訂偵錯工具的執行方式。

這項功能適用於 SSMS 17.9.1 版及更早版本。

啟動和停止偵錯工具

啟動 Transact-SQL 偵錯工具的需求如下:

  • 如果您的 Database Engine 查詢編輯器連接到另一部電腦上的 Database Engine 實例,您必須已設定偵錯工具以進行遠端偵錯。 如需詳細資訊,請參閱 先設定防火牆規則再執行 TSQL 偵錯工具

  • SQL Server Management Studio必須在系統管理員固定伺服器復原成員的 Windows 帳戶下執行。

  • Database Engine 查詢編輯器視窗必須使用 Windows 驗證或SQL Server驗證登入,這是系統管理員固定伺服器角色的成員。

  • Database Engine 查詢編輯器視窗必須從 SQL Server 2005 (9.x) Service Pack 2 (SP2) 或更新版本連接到 Database Engine 的實例。 當 [查詢編輯器] 視窗連接至處於單一使用者模式下的執行個體時,您就無法執行偵錯工具。

基於下列原因,建議您在測試伺服器上偵錯 Transact-SQL 程式碼,而不是生產伺服器:

  • 偵錯是具有高度權限的作業。 因此,只有 sysadmin 固定伺服器角色的成員才能在 SQL Server 中偵錯。

  • 當您調查數個 Transact-SQL 語句的作業時,偵錯會話通常會長時間執行。 工作階段所取得的鎖定 (例如更新鎖定) 可能會長時間保留,直到工作階段結束,或者交易已認可或回復為止。

啟動 Transact-SQL 偵錯工具會將查詢編輯器視窗放入偵錯模式。 當 [查詢編輯器] 視窗進入偵錯模式時,偵錯工具就會在第一行程式碼上暫停。 然後,您可以逐步執行程式碼、在特定 Transact-SQL 語句上暫停執行,並使用偵錯工具視窗來檢視目前的執行狀態。 您可以透過按一下 [查詢] 工具列上的 [偵錯] 按鈕,或按一下 [偵錯] 功能表上的 [開始偵錯] ,啟動偵錯工具。

[查詢編輯器] 視窗會保持在偵錯模式中,直到 [查詢編輯器] 視窗中的最後一個陳述式完成或是您停止偵錯模式為止。 您可以使用下列任何一種方法來停止偵錯模式和陳述式執行:

  • [偵錯] 功能表上,按一下 [停止偵錯]

  • [偵錯] 工具列上,按一下 [停止偵錯] 按鈕。

  • [查詢] 功能表上,按一下 [取消執行查詢]

  • [查詢] 工具列上,按一下 [取消執行查詢] 按鈕。

您也可以停止偵錯模式,並允許剩餘的 Transact-SQL 語句完成執行,方法是按一下 [錯] 功能表上的 [全部中斷連結]。

控制偵錯工具

您可以使用下列功能表命令、工具列和快捷方式來控制 Transact-SQL 偵錯工具的運作方式:

  • [偵錯] 功能表和 [偵錯] 工具列。 在開啟的 [查詢編輯器] 視窗中放置焦點之前, [偵錯] 功能表和 [偵錯] 工具列是處於非使用中狀態。 此外,它們會維持使用中狀態,直到目前的專案關閉為止。

  • 偵錯工具鍵盤快速鍵。

  • 查詢編輯器快速鍵功能表。 當您在 [查詢編輯器] 視窗中,以滑鼠右鍵按一下某一行時,就會顯示快速鍵功能表。 當 [查詢編輯器] 視窗處於偵錯模式時,快速鍵功能表就會顯示套用至選取行或字串的偵錯工具命令。

  • 偵錯工具所開啟之視窗 (例如 [監看式][中斷點] 視窗) 中的主要項目和內容命令。

下表將顯示偵錯工具功能表命令、工具列按鈕和鍵盤快速鍵。

偵錯功能表命令 編輯器快速鍵命令 工具列按鈕 鍵盤快速鍵 動作
視窗/中斷點 無法使用 [中斷點] CTRL+ALT+B 顯示您可以用來檢視和管理中斷點的 [中斷點] 視窗。
視窗/監看式/監看式 1 無法使用 中斷點/監看式/監看式 1 CTRL+ALT+W、1 顯示 [監看式 1] 視窗。
視窗/監看式/監看式 2 無法使用 中斷點/監看式/監看式 2 CTRL+ALT+W、2 顯示 [監看式 2] 視窗。
視窗/監看式/監看式 3 無法使用 中斷點/監看式/監看式 3 CTRL+ALT+W、3 顯示 [監看式 3] 視窗。
視窗/監看式/監看式 4 無法使用 中斷點/監看式/監看式 4 CTRL+ALT+W、4 顯示 [監看式 4] 視窗。
視窗/區域變數 無法使用 中斷點/區域變數 CTRL+ALT+V、L 顯示 [區域變數] 視窗。
視窗/呼叫堆疊 無法使用 中斷點/呼叫堆疊 CTRL+ALT+C 顯示 [呼叫堆疊] 視窗。
視窗/執行緒 無法使用 中斷點/執行緒 CTRL+ALT+H 顯示 [執行緒] 視窗。
繼續 無法使用 繼續 ALT+F5 執行到下一個中斷點。 在處於偵錯模式的 [查詢編輯器] 視窗中放置焦點之前, [繼續] 是處於非使用中狀態。
[偵錯] 無法使用 [偵錯] ALT+F5 讓 [查詢編輯器] 視窗進入偵錯模式,並且執行到第一個中斷點。 如果您在處於偵錯模式的 [查詢編輯器] 視窗中放置焦點, [開始偵錯] 就會由 [繼續] 所取代。
全部中斷 無法使用 全部中斷 CTRL+ALT+BREAK Transact-SQL 偵錯工具未使用這項功能。
停止偵錯 無法使用 停止偵錯 SHIFT+F5 讓 [查詢編輯器] 視窗離開偵錯模式,並且返回一般模式。
功能表上的 無法使用 無法使用 無法使用 停止偵錯模式,但在 [查詢編輯器] 視窗中執行其餘陳述式。
逐步執行 無法使用 逐步執行 F11 執行下一個陳述式,而且如果下一個陳述式會執行預存程序、觸發程序或函數,就會在偵錯模式中開啟新的 [查詢編輯器] 視窗。
逐程序 無法使用 逐程序 F10 [逐步執行] 相同,但是不會偵錯任何函數、預存程序或觸發程序。
跳出 無法使用 跳出 SHIFT+F11 執行觸發程序、函數或預存程序中的其餘程式碼,但是不會針對任何中斷點暫停。 當控制權返回呼叫模組的程式碼時,就會繼續進行一般偵錯模式。
無法使用 執行至資料指標處 無法使用 CTRL+F10 執行所有程式碼 (從上一個停止位置到目前的資料指標位置),但是不會在任何中斷點上停止。
QuickWatch QuickWatch 無法使用 CTRL+ALT+Q 顯示 [快速監看式] 視窗。
切換中斷點 中斷點/插入中斷點 無法使用 F9 將中斷點放在目前或選取的 Transact-SQL 語句上。
無法使用 中斷點/刪除中斷點 無法使用 無法使用 從選取行中刪除中斷點。
無法使用 中斷點/停用中斷點 無法使用 無法使用 停用選取行的中斷點。 雖然中斷點會保留在程式碼行上,但是在重新啟用之前,它將不會停止執行作業。
無法使用 中斷點/啟用中斷點 無法使用 無法使用 啟用選取行的中斷點。
刪除所有中斷點 無法使用 無法使用 CTRL+SHIFT+F9 刪除所有中斷點。
停用所有中斷點 無法使用 無法使用 無法使用 停用所有中斷點。
無法使用 加入監看式 無法使用 無法使用 將選取的運算式加入至 [監看式] 視窗。

另請參閱