Share via


以 Managed 程式碼建立 SQL Server 物件

通常,您在定義資料庫物件時會使用 Transact-SQL 程式設計語言。 不過,您也可以使用 .NET Framework 語言來定義資料庫物件 (例如預存程序和觸發程序),以及擷取和更新 SQL Server 資料庫的資料。 這些物件通常稱為 SQL Server Common Language Runtime 物件或 SQL CLR 物件。

若要建立資料庫物件,您必須建立 SQL Server 專案、將必要項目加入至專案,以及將程式碼加入這些項目。 然後再將專案建置到組件,並部署至 SQL Server。

注意事項注意事項

預設會關閉 SQL Server 中的 Common Language Runtime (CLR) 整合功能。 您必須啟用 CLR 整合,才能使用 SQL CLR 專案項目。 若要進行這項作業,請使用 sp_configure 預存程序的 clr enabled 選項。 如需詳細資訊,請參閱 Microsoft 網站上的 clr enabled 選項主題。

建置、部署和偵錯

當您建置專案時,它會編譯成組件,然後即可將它部署至專案中參考的資料庫,以及進行偵錯。

注意事項注意事項

除了以三個步驟分別進行建置、部署和偵錯之外,另一個選擇為,使用 [啟動] 命令 (F5) 或 [啟動但不偵錯] 命令 (CTRL+F5),建置組件、將它部署至資料庫,以及偵錯資料庫物件。 如果想要使用 F5 或 CTRL+F5,SQL CLR 資料庫專案必須設為啟始專案。 如需詳細資訊,請參閱HOW TO:設定啟始專案

您也可以選擇將 Transact-SQL 陳述式加入至 PreDeployScript.sql 和 PostDeployScript.sql。 如果必須在部署 SQL CLR 資料庫專案前後對資料庫執行動作,可以選擇這麼做。

偵錯資料庫物件之前,您必須將 Transact-SQL 程式碼加入至 Test.sql 指令碼,或將相同的 Transact-SQL 程式碼加入至已連接專案部署目標資料庫的 Transact-SQL 編輯器執行個體。 此指令碼是偵錯時的重要項目,因為它會在資料庫中執行啟動和測試資料庫物件的必要動作。 如果 SQL CLR 資料庫專案包含一個以上的資料庫物件,此指令碼必須包含您要執行偵錯之每個資料庫物件的 Transact-SQL 程式碼。

這個偵錯指令碼需求不同於會建立和執行獨立可執行程式的專案,例如 Windows Form 專案, 因為資料庫物件只有為了回應資料庫中的動作或呼叫時才會執行。 例如,將新資料列插入資料表時,可能會啟動觸發程序。 因此,指令碼必須將新資料列插入資料表,以啟動觸發程序。 在 Visual Studio 的 [輸出] 視窗中,隨即顯示觸發程序的結果,讓您可以判斷觸發程序是否正確運作。

重要事項重要事項

您必須擁有適當的權限,才能部署或偵錯 SQL CLR 組件。 如需詳細資訊,請參閱Visual Studio 資料庫功能的必要權限

您可以在相關型別主題中,找到每個資料庫物件型別的範例程式碼。

偵錯資料庫物件

當您偵錯資料庫物件時,會建置組件、將它部署至資料庫,然後進行偵錯。 當您要偵錯先前已建置和部署的資料庫物件時,只有在上次建置專案後已變更的情況下,才會重新建置組件。 永遠會先刪除資料庫中的組件,然後才重新複製組件。 如需詳細資訊,請參閱偵錯使用 Managed 程式碼的資料庫物件 (SQL CLR 偵錯)

若要啟用遠端偵錯

  1. 在 [方案總管] 中,以滑鼠右鍵按一下要為其啟用遠端偵錯的 SQL CLR 專案,然後按一下 [屬性]。

  2. 按一下 [部署] 索引標籤。

  3. 選取 [部署程式碼]。

  4. 在 [檔案] 功能表上,按一下 [儲存選取項目]。

若要偵錯資料庫物件

  1. 在 [方案總管] 中按一下方案。

  2. 按一下 [偵錯] 功能表上的 [啟動]。

  3. 在 [輸出] 視窗的 [顯示輸出來源] 清單中,選取 [資料庫輸出] 以檢視結果。

一般工作

一般工作

支援內容

瞭解更多有關 SQL CLR 資料庫專案:閱讀有關發展的優勢。.NET 框架資料庫物件的SQL Server使用託管的代碼。託管的代碼有幾個優點相比Transact-SQL。

獲取動手練習:按照本演練熟悉如何創建、 部署和測試專案,通過使用託管的代碼中定義的存儲的過程。

創建 SQL CLR 資料庫專案:創建一個專案,在Visual Basic或Visual C#,將包含您要定義的資料庫物件的定義。

將專案添加到 SQL CLR 資料庫專案中:當您首次創建SQL Server專案,它只包含引用和程式集資訊。 若要建立資料庫物件,您必須將項目加入至專案,再將程式碼加入至項目。 您可以加入預存程序、彙總、觸發程序、使用者定義函式和使用定義型別。 每個 SQL Server 專案和它所包含的每個物件都必須套用屬性。

您可以在專案中定義多個物件。 如果必須單獨更新這些物件,或者如果產生之組件的每個部署目標資料庫未使用所有物件,您可以選擇使用多個專案。

將程式集部署到 SQL Server,並對其進行測試:在創建專案、 添加專案,並為這些項添加代碼後,您必須部署生成的程式集,以SQL Server之前,您可以使用已定義的物件。 如果 SQL Server 專案包含另一個 SQL Server 專案中一個或多個物件的參考,您無法在第一個專案中使用 [部署] 命令來部署第二個 (被參考的) 專案。 在部署組件之後,您可以執行測試指令碼來執行一些簡單測試。

部署的調試。一、 網路架構的資料庫物件。如果您的資料庫物件不按預期方式工作,您可以調試該物件來識別並更正任何代碼缺陷。

參考資料

  • System.Data
    說明 System.Data 命名空間並提供相關類別的資料表。

  • System.Data.Sql
    說明 System.Data.Sql 命名空間並提供相關類別的資料表。

  • System.Data.SqlTypes
    System.Data.SqlTypes 命名空間提供 SQL Server 2005 內原生資料型別的類別。

  • Microsoft.SqlServer.Server
    說明 Microsoft.SqlServer.Server 命名空間並提供相關類別的資料表。

相關情節

  • **開發團隊環境中引用的資料庫。一、 網路架構的資料庫物件。**您可以使用其他功能的Visual Studio可以減少風險,並在團隊環境中加快發展的資料庫應用程式的説明。您可以定義資料庫專案中的資料庫結構描述、對專案實施版本控制,以及建立資料庫單元測試以驗證預期的行為。