共用方式為


在資料庫單元測試中使用 T-SQL 判斷提示

更新:2007 年 11 月

在「資料庫單元測試」(Database Unit Test) 中,會執行 Transact-SQL (T-SQL)「測試指令碼」(Test Script),並傳回結果。有時會以結果集的形式傳回結果。您可以使用測試條件來驗證結果。例如,您可以使用測試條件來檢查特定結果集中所傳回的資料列數,或是驗證執行特定測試所花的時間。如需測試條件的詳細資訊,請參閱在資料庫單元測試中使用測試條件

您也可以使用 T-SQL 判斷提示 (在 T-SQL 指令碼中即為「RAISERROR 陳述式」(RAISERROR Statement)),而不需使用測試條件。在某些情況下,您可能會偏好使用 T-SQL 判斷提示,而非測試條件。

使用 T-SQL 判斷提示

在您決定使用 T-SQL 判斷提示或測試條件來驗證資料之前,應該考慮以下幾點事項。

  • 效能:在伺服器上執行 T-SQL 判斷提示要比先將資料移到用戶端電腦再從本機進行管理來得快。

  • 對語言的熟悉程度。您可能會根據現有的專門技術而偏好特定的語言,因而選擇 T-SQL 判斷提示或是 C# 或 Visual Basic 測試條件。

  • 複雜的驗證。在某些情況下,您可以建置更複雜的測試驗證,而不只是使用 C# 或 Visual Basic,並在用戶端上驗證您的測試。

  • 舊版驗證程式庫。如果您已經有執行驗證的程式碼,可以在資料庫單元測試中使用該程式碼,而不需使用測試條件。

RAISERROR 陳述式

您可以在 T-SQL 指令碼中使用 RAISERROR 陳述式,即可直接在伺服器上使用 T-SQL 判斷提示。它的語法為:

**RAISERROR (@ErrorMessage, @ErrorSeverity, @ErrorState)**

其中:

@ErrorMessage 是任何使用者定義的錯誤訊息,您可以設定此訊息字串的格式,使其類似於 printf_s 函式。

@ErrorSeverity 為使用者定義的嚴重性層級 (從 0 – 18)。

注意事項:

嚴重性層級 '0' 和 '10' 的值不會讓資料庫單元測試失敗;您可以使用 0 - 18 範圍中的任何其他值,讓測試失敗。

@ErrorState 是從 1 – 127 的任意整數,您可以使用這個整數來區分在程式碼中不同位置所引發之單一錯誤的發生。

如需詳細資訊,請參閱《SQL Server 線上叢書》中的 "RAISERROR (Transact-SQL)" (https://msdn2.microsoft.com/zh-tw/library/ms178592.aspx)。以下主題中有提供在資料庫單元測試中使用 RAISERROR 的範例:HOW TO:撰寫會在單一交易範圍中執行的資料庫單元測試

請參閱

工作

HOW TO:開啟要編輯的資料庫單元測試

概念

在資料庫單元測試中使用測試條件

Database Edition 的用語概觀

其他資源

資料庫單元測試概觀