以 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 偵錯)。
若要啟用遠端偵錯
在 [方案總管] 中,以滑鼠右鍵按一下要為其啟用遠端偵錯的 SQL CLR 專案,然後按一下 [屬性]。
按一下 [部署] 索引標籤。
選取 [部署程式碼]。
在 [檔案] 功能表上,按一下 [儲存選取項目]。
若要偵錯資料庫物件
在 [方案總管] 中按一下方案。
按一下 [偵錯] 功能表上的 [啟動]。
在 [輸出] 視窗的 [顯示輸出來源] 清單中,選取 [資料庫輸出] 以檢視結果。
一般工作
一般工作 |
支援內容 |
---|---|
瞭解更多有關 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可以減少風險,並在團隊環境中加快發展的資料庫應用程式的説明。您可以定義資料庫專案中的資料庫結構描述、對專案實施版本控制,以及建立資料庫單元測試以驗證預期的行為。