共用方式為


逐步解說:偵錯 T-SQL 使用者定義的函式

更新:2007 年 11 月

這個主題適用於:

版本

Visual Basic

C#

C++

Web Developer

Express 版

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

Standard 版

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

Pro/Team 版

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

表格圖例:

標題適用於

套用

標題不適用於

不套用

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

預設隱藏的命令。

這個範例使用 AdventureWorks 資料庫中名稱為 ufnGetStock 的現有使用者定義函式 (UDF)。這個函式會對指定的 ProductID 傳回庫存的項目數目。

這個範例會建立呼叫數次 UDF 的預存程序。預存程序會使用不同的參數呼叫 UDF,因此您可以經由 UDF 遵循不同的執行路徑。這個範例也會說明從一個 T-SQL 物件 (預存程序) 跳至另一個 T-SQL 物件 (函式)。這些步驟類似逐步解說:偵錯 T-SQL 預存程序中的步驟。

您也可以逐步執行至 [伺服器總管] 中的函式,以便執行 [直接資料庫偵錯]。

若要偵錯使用者定義函式

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

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

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

  4. 在 UDF ufnGetStock 設定中斷點。

    1. 以滑鼠右鍵按一下 [伺服器總管] 中的 [函式] 節點,然後按兩下 [ufnGetStock] 圖示,以便開啟 UDF 的原始程式碼。

    2. 在 DECLARE 陳述式旁的灰色邊界中,按一下滑鼠左鍵設定中斷點。

  5. 逐步執行至預存程序。如果程序具有參數,[執行預存程序] 對話方塊就會出現,詢問其值。在此情況下,參數全都會硬式編碼到預存程序中。如需詳細資訊,請參閱 HOW TO:使用伺服器總管逐步執行物件

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

    1. 使用 F11 鍵或 [逐步執行] 按鈕逐步執行程式碼。當您在 SELECT 陳述式再次按 F11 時,將會逐步執行至 UDF。在結束返回預存程序之前,逐步執行 UDF,然後繼續。

    2. 依照輸入的參數而定,可以在 UDF 中看到不同的執行路徑。您可以在 [區域變數] 視窗的 UDF 中,或是藉由將游標置放在變數上,看到變數值。

範例

下列是呼叫使用者定義函式的預存程序程式碼。

ALTER PROCEDURE Test_ufnGetStock 
AS
    SELECT dbo.ufnGetStock(1) as CurrentStock   -- non-zero inventory
    SELECT dbo.ufnGetStock(316) as CurrentStock -- zero inventory
    SELECT dbo.ufnGetStock(5) as CurrentStock   -- no such product

請參閱

概念

偵錯 SQL

參考

伺服器總管/資料庫總管