首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> SQL Server 2008

SQL Server 2008 偵錯 T-SQL 與預存程序完整操作指南

     編輯:SQL Server 2008

版本演進脈絡

  • SQL Server 2000:查詢分析器內建偵錯,右鍵預存程序 → 偵錯 → 輸入參數
  • SQL Server 2005:移除偵錯功能,需安裝 Visual Studio 2005 專業版以上
  • SQL Server 2008:偵錯功能回歸 SSMS,但操作方式大幅改變

SSMS 2008 偵錯操作流程

  1. 查詢視窗撰寫執行腳本:EXEC [ProcedureName] @Param1, @Param2
  2. 點擊工具列綠色三角形(啟動偵錯) 或選單「偵錯 → 啟動偵錯」
  3. 使用工具列按鈕:F11 逐行執行、F10 逐過程執行、跳出、中斷點
  4. 觀察下方視窗:區域變數、呼叫堆疊、中斷點、輸出

偵錯前置需求

場景需求
本機偵錯(引擎同機)sysadmin 或 Windows 管理員登入即可
遠端偵錯防火牆例外:
• ssms.exe
• sqlservr.exe
• TCP 135 連接埠

實戰範例:基本 T-SQL 偵錯

USE Northwind;
GO
DECLARE @i INT, @j INT, @k INT;
SET @i = 1;
SET @j = 2;
SET @k = @i + @j;
SELECT @i;
GO
  1. 按 F11 進入偵錯模式
  2. 連續按 F11 逐行執行,觀察變數視窗數值變化
偵錯啟動畫面 逐行偵錯畫面

進階:巢狀預存程序偵錯

建立測試預存程序

CREATE PROCEDURE sp_GetOrders @OrderID INT = NULL
AS
BEGIN
    IF (@OrderID IS NULL)
        PRINT 'NULL';
    ELSE
        PRINT 'VALID';
    
    SELECT * FROM Orders WHERE OrderID = @OrderID;
END
GO

呼叫腳本與偵錯

DECLARE @i INT, @j INT, @k INT;
SET @i = 1; SET @j = 2; SELECT @k = @i + @j;
EXEC sp_GetOrders 10248;
SELECT @i;
GO
  1. F11 偵錯至 EXEC sp_GetOrders 10248
  2. 再次按 F11 進入預存程序內部 逐行偵錯
  3. 觀察呼叫堆疊視窗顯示巢狀層級
主腳本偵錯 進入預存程序偵錯

智慧提示功能

  • Ctrl + J:喚起 IntelliSense 程式碼提示(與 Visual Studio 一致)
  • 支援關鍵字、資料表名、欄位名、系統函數自動完成
  • IntelliSense 提示

總結比較

特性SQL 2000SQL 2008
偵錯入口物件瀏覽器右鍵查詢視窗工具列
參數輸入對話框EXEC 腳本中指定
巢狀程序不支援完整支援(F11 進入)
變數監看基本完整(區域/監看/堆疊)
遠端偵錯簡單需防火牆配置

結語

SQL Server 2008 將偵錯功能整合回 SSMS,雖然操作習慣改變,但功能更強大(支援巢狀程序、完整變數監看、Visual Studio 風格操作)。配合 IntelliSense 提升開發效率,是資料庫開發者的重要利器。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved