共用方式為


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

更新:2007 年 11 月

這個主題適用於:

版本

Visual Basic

C#

C++

Web Developer

Express 版

標題不適用於 標題不適用於 標題不適用於 標題不適用於

Standard 版

標題不適用於 標題不適用於 標題不適用於 標題不適用於

Pro/Team 版

標題適用於 標題適用於 標題適用於 標題適用於

表格圖例:

標題適用於

套用

標題不適用於

不套用

預設會套用主題但隱藏命令

預設隱藏的命令。

若要偵錯觸發程序,請在導致引發觸發程序的預存程序中設定中斷點、在觸發程序中設定中斷點,然後依照逐步解說:偵錯 T-SQL 預存程序所述的程序繼續執行。

這個範例會使用 AdventureWorks 資料庫,該資料庫中具有使用 UPDATE 觸發程序的 Sales.Currency 資料表。這個範例包含會更新資料表中資料列的預存程序,它會因此導致引發觸發程序。在觸發程序中設定中斷點,然後藉由使用不同的參數執行預存程序,就可以遵循觸發程序中不同的執行路徑。

注意事項:

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

若要偵錯 SQL 觸發程序

  1. 在新的 SQL Server 專案中,建立與 [AdventureWorks] 範例資料庫的連接。如需詳細資訊,請參閱 HOW TO:連接資料庫

  2. 使用下列第一個範例區段的程式碼建立新的預存程序,並將其命名為 UpdateCurrency_T_SQL。如需詳細資訊,請參閱 HOW TO:使用 SQL Server 專案類型開發

  3. 在 UpdateCurrency_T_SQL 設定中斷點。這是選擇性的,因為「直接資料庫偵錯」會導致程序中的第一行被當做中斷點。

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

    1. 以滑鼠右鍵按一下 [資料表] 節點,然後以滑鼠右鍵按一下 Sales.Currency 資料表的節點,再按兩下名為 [uCurrency] 的觸發程序圖示,便可開啟觸發程序原始程式碼。

    2. 在 SET NOCOUNT ON 陳述式旁邊的灰色邊界中按滑鼠左鍵,以便在觸發程序中設定中斷點。這個步驟不是選擇性的:如果不在觸發程序中設定中斷點,當您嘗試逐步執行至觸發程序時,則會略過其程式碼。

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

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

  6. 設定下列參數值:

    1. @currencyCode = AAA

    2. @name = 任意值,例如 My Test Name。

    指令指標的黃色箭頭會出現在 SET @mynvarchar = @@VERSION 行上,也就是預存程序中第一個可執行的程式碼行。

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

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

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

    2. 在結束返回預存程序之前,逐步執行觸發程序,然後繼續到結尾處。

  8. 您可以在 [伺服器總管] 以滑鼠右鍵按一下 [資料表] 下方的 [Sales.Currency] 節點,然後按一下 [顯示資料表資料],以驗證是否有插入資料。

範例

下列是導致引發觸發程序的預存程序程式碼。

ALTER PROCEDURE dbo.UpdateCurrency_T_SQL
    (
        @currencyCode   nvarchar(3),
        @Name           nvarchar(50)           
    )
AS
    SET NOCOUNT ON
    UPDATE Sales.Currency
    SET Name = @Name 
        WHERE CurrencyCode = @currencyCode 
    RETURN

請參閱

概念

偵錯 SQL

參考

伺服器總管/資料庫總管