共用方式為


逐步解說:偵錯 Transact-SQL 觸發程序

這個主題適用於:

Visual Studio Ultimate

Visual Studio Premium

Visual Studio Professional

Visual Studio Express

ms165046.DoesApplybmp(zh-tw,VS.100).gif ms165046.DoesApplybmp(zh-tw,VS.100).gif ms165046.DoesApplybmp(zh-tw,VS.100).gif ms165046.DoesNotApplybmp(zh-tw,VS.100).gif

若要偵錯觸發程序,您可以在預存程序中設定會引發觸發程序的中斷點、在觸發程序中設定中斷點,然後按照 逐步解說:偵錯 Transact-SQL 預存程序中描述的步驟進行。

此範例使用 AdventureWorks2008 資料庫,此資料中具有包含 DELETE 觸發程序的「採購廠商」資料表。這個範例包含的預存程序會刪除資料表中的資料列,因而引發觸發程序。在觸發程序中設定中斷點,然後藉由使用不同的參數執行預存程序,就可以遵循觸發程序中不同的執行路徑。

注意

根據您目前使用的設定或版本,您所看到的對話方塊與功能表指令可能會與 [說明] 中描述的不同。若要變更設定,請從 [工具] 功能表中選取 [匯入和匯出設定]。如需詳細資訊,請參閱 Visual Studio Settings

偵錯 SQL 觸發程序

  1. 在新的 SQL Server 專案中,建立與 AdventureWorks2008 範例資料庫的連接。如需詳細資訊,請參閱 HOW TO:使用伺服器總管連接到資料庫

  2. 使用下列第一個範例區段的程式碼建立新的預存程序,並將其命名為 UpdateCurrency_T_SQL。如需詳細資訊,請參閱 HOW TO:以 SQL Server 資料庫專案或伺服器專案偵錯

  3. 在 DeleteVendor 中設定中斷點。這是選擇性的步驟,因為「直接資料庫偵錯」會將程序中的第一行當作中斷點。

  4. 設定觸發程序的中斷點。

    1. 以滑鼠右鍵依序按下 [資料表] 節點和 [採購廠商] 資料表的節點,然後按兩下名為 [dVendor] 的觸發程序圖示。

    2. 以滑鼠左鍵按一下 SET NOCOUNT ON 陳述式旁的灰色邊界,設定觸發程序中的中斷點。此步驟並非選擇性,如果您未設定觸發程序中的中斷點,嘗試逐步執行該觸發程序時,就會略過其程式碼。

  5. 逐步執行預存程序。如需詳細資訊,請參閱 HOW TO:使用伺服器總管逐步執行物件

    會出現 [執行預存程序] 對話方塊,要求輸入參數值。

  6. 設定下列參數值:

    @entityID = 1492

    指令指標的黃色箭號會出現在 SET NOCOUNT ON 這一行,也就是預存程序中第一個可執行的程式碼行。

  7. 嘗試不同的偵錯功能。

    1. 使用 F11 鍵或 [逐步執行] 按鈕,逐步執行程式碼。

      在 DELETE 陳述式中,當您再次按下 F11 鍵時,您會逐步執行至觸發程序。

    2. 逐步執行觸發程序直到您結束回到預存程序,然後再繼續進行直到結束。

範例

這是引發觸發程序的預存程序程式碼。

ALTER PROCEDURE dbo.DeleteVendor
    (
        @entityID       int
    )
AS
    SET NOCOUNT ON
    DELETE Purchasing.Vendor
    WHERE BusinessEntityID = @entityID 
    RETURN

請參閱

概念

偵錯 Transact-SQL

其他資源

Server Explorer/Database Explorer