在本機嘗試執行 T-SQL 偵錯時,可能發生錯誤

本文將說明在本機嘗試執行 T-SQL 偵錯時的小技巧。

情境描述

當您嘗試在本機 SQL Server 2012 啟動偵錯時,可能會發生如下圖的錯誤訊息:

image

或是下圖的錯誤訊息:

image

該如何排除?請見下一節。

實作步驟

從上一節的錯誤訊息可以明顯看出,錯誤發生的原因在於偵錯工具無法連接到遠端的電腦,您可能會想說明明我是在本機要進行偵錯,怎麼錯誤訊息會告訴我沒辦法連接到遠端電腦,即使參考 MSDN 上設定 Transact-SQL 偵錯工具的步驟進行設定後仍無法執行偵錯,而且電腦名稱的 '.''(local)' 又是怎麼來的?這兩個在錯誤訊息中顯示的電腦名稱是對應到當您在 SSMS 中按下新增查詢後,在連接到 Database Engine 視窗中所輸入的伺服器名稱(如下圖)。

image

想要在本機執行個體上執行 T-SQL 偵錯,只要在您連接到 Database Engine 時,伺服器名稱應該使用本機的電腦名稱或 IP,例如筆者的電腦名稱為 W8-Office,因此在伺服器名稱的部分就輸入 W8-Office 之後再按連接。

image

接著輸入您要執行的 T-SQL 敘述之後並設定中斷點,最後按 F10 或 工具列上的偵錯,即可順利進行 T-SQL 偵錯,其相關偵錯功能跟使用 Visual Studio 時差不多,筆者就不再多做介紹,本文僅針對偵錯功能啟用時所遇到的問題進行說明。

image

補充說明

若您嘗試在 SQL Server 2012 Express LocalDB 上啟動 T-SQL 偵錯,將會看到如下圖的錯誤訊息:

image

目前 LocalDB 似乎不支援偵錯功能,國外已經有人在論壇上討論,也反應到 Microsoft Connect,但截至本文撰寫為止,該問題尚未修復。

參考資料

- Transact-SQL 偵錯工具

- 設定 Transact-SQL 偵錯工具

- Cannot debug SQL Query in SQL Server Management Studio 2012 + SQL Express 2012 LocalDB

- Cannot Debug in Management Studio + LocalDB

- HOW TO:啟用 Transact-SQL 偵錯

- Transact-SQL 偵錯設定錯誤與疑難排解