在現代 SSMS 整合式除錯器普及前,SQL Server 7.0 時代的開發者依賴 Visual Studio 6.0 企業版中的 Visual InterDev SQL 偵錯器,實現預存程序與觸發器的斷點、單步執行、變數監視等 IDE 級除錯體驗。本文完整重現當時的官方設定指南,補充實戰踩坑避雷指南,供維護舊系統或研究演進歷程的工程師參考。
| 層級 | 元件 | 最低版本 | 建議版本 | 備註 |
|---|---|---|---|---|
| 伺服器端 | SQL Server | 6.5 SP2 | 7.0 | 需安裝偵錯元件 |
| 伺服器端 | Windows NT | 4.0 | 4.0 SP6a+ | 不支援 Windows 9x 作為伺服器 |
| 用戶端 | Visual Studio | Enterprise Edition 6.0 | Enterprise Edition 6.0 SP5 | 專業版不含 SQL 偵錯器 |
| 用戶端 | 作業系統 | Windows 95/98/NT 4.0 | Windows 2000 Professional | Win9x 需額外設定 DCOM |
核心要求:SQL Server 服務必須以「具備本機管理員權限的網域使用者帳戶」啟動,而非 Local System。
DOMAIN\SQLDebugUser)MSSQLServer → 啟動參數 → 選 這個帳戶 → 輸入帳戶/密碼dcomcnfg.exeEveryone(或特定偵錯使用者帳戶)SYSTEMAdministratorsWindows NT/2000/XP 用戶端預設即支援,無需額外設定。Win9x 需安裝 DCOMCNFG.EXE 並同樣授與預設存取權限。
| 視窗 | 開啟方式 | 核心功能 |
|---|---|---|
| 監看式 | 除錯 → 視窗 → 監看式 | 輸入變數名(含 @param、@@ROWCOUNT、暫存表欄位),即時顯示值 |
| 呼叫堆疊 | 除錯 → 視窗 → 呼叫堆疊 | 巢狀預存程序/觸發器呼叫鏈追蹤 |
| 中斷點 | 除錯 → 視窗 → 中斷點 | 管理條件斷點、命中計數、啟用/停用 |
| 輸出 | 檢視 → 輸出 | PRINT 訊息、RAISERROR、系統事件 |
-- 在斷點屬性中設定條件範例
@OrderID > 10000 AND @CustomerID = 'ALFKI'
除錯中斷時,可在「監看式」視窗直接編輯變數值,模擬邊界條件測試業務邏輯分支。
EXEC(@sql)) 內部單步| 時代 | 工具 | 核心優勢 |
|---|---|---|
| SQL 7.0 / 2000 | Visual InterDev SQL Debugger | 首個 IDE 級 T-SQL 除錯器 |
| SQL 2005 / 2008 | SSMS 內建除錯器 | 免額外安裝、整合 IntelliSense |
| SQL 2012+ | SSDT (SQL Server Data Tools) in Visual Studio | 專案導向、單元測試、Git 整合、靜態分析 |
| 跨平台/雲端 | Azure Data Studio + SQL Server Extension | 輕量、Linux/macOS/Windows 通用 |
若仍在維護 SQL Server 7.0/2000 系統,建議:
tSQLt 單元測試,降低對互動式除錯的依賴Visual InterDev SQL 偵錯器是微軟資料平台除錯能力的里程碑。雖設定繁瑣(DCOM、服務帳戶、權限鏈),卻為 T-SQL 開發帶來前所未有的可視化除錯體驗。理解其架構原理——DCOM 遠端程序呼叫 + 專用偵錯執行緒 + PDB 符號對應——有助於理解現代除錯器的底層演進。願這份完整指南能助您在舊系統維護之旅中少走彎路,並加速向現代化開發工具鏈邁進。