部署 CLR 資料庫物件

適用於:SQL Server

部署是您散發要安裝並在另一部電腦上執行之已完成應用程式或模組的程式。 使用 Microsoft Visual Studio,您可以開發 Common Language Runtime (CLR) 資料庫物件,並將其部署至測試伺服器。 或者,Managed 資料庫物件也可以使用 Microsoft .NET Framework 轉散發檔案編譯,而不是 Visual Studio。 編譯之後,就可以使用 Visual Studio 或 Transact-SQL 語句,將包含 CLR 資料庫物件的元件部署到測試伺服器。 請注意,Visual Studio .NET 2003 無法用於 CLR 整合程式設計或部署。 SQL Server 包含預先安裝的 .NET Framework,且 Visual Studio .NET 2003 無法使用 .NET Framework 2.0 組件。

一旦 CLR 方法已經在測試伺服器上測試並驗證,您就可以使用部署指令碼,將它們散發至實際執行伺服器 (Production Server)。 部署腳本可以手動產生,或使用 SQL Server Management Studio(請參閱本主題稍後的程式)。

根據預設,SQL Server 會關閉 CLR 整合功能,而且必須啟用才能使用 CLR 元件。 如需詳細資訊,請參閱 Enabling CLR Integration

將元件部署至測試伺服器

使用 Visual Studio,您可以開發 CLR 函式、程式、觸發程式、使用者定義型別(UDT)或使用者定義匯總(UDA),並將其部署至測試伺服器。 這些 Managed 資料庫物件也可以使用命令列編譯器來編譯,例如 csc.exe 和 vbc.exe,隨附于 .NET Framework 轉散發檔案中。 不需要 Visual Studio 整合式開發環境,即可開發 SQL Server 的受控資料庫物件。

請確定所有編譯器錯誤和警告都已解決。 然後,可以使用 Visual Studio 或 Transact-SQL 語句,在 SQL Server 資料庫中註冊包含 CLR 常式的元件。

注意

SQL Server 實例必須啟用 TCP/IP 網路通訊協定,才能使用 Microsoft Visual Studio 進行遠端開發、偵錯及開發。 如需在伺服器上啟用 TCP/IP 通訊協定的詳細資訊,請參閱設定用戶端通訊協定

使用 Visual Studio 部署元件

  1. [建置] 功能表中選取 [建 置專案名稱 > ] 來建 < 置專案。

  2. 將元件部署至測試伺服器之前,請先解決所有建置錯誤和警告。

  3. 從 [建置 ] 功能表中選取 [部署 ]。 接著,元件將會在 VISUAL Studio 中第一次建立 SQL Server 專案時指定的 SQL Server 實例和資料庫中註冊。

使用 Transact-SQL 部署元件

  1. 使用 .NET Framework 隨附的命令列編譯器,從來源檔案編譯元件。

  2. 針對 Microsoft Visual C# 原始程式檔:

  3. csc /target:library C:\helloworld.cs

  4. 針對 Microsoft Visual Basic 原始程式檔:

vbc /target:library C:\helloworld.vb

這些命令會使用 /target 選項啟動 Visual C# 或 Visual Basic 編譯器,以指定建置程式庫 DLL。

  1. 將元件部署至測試伺服器之前,請先解決所有建置錯誤和警告。

  2. 在測試伺服器上開啟 SQL Server Management Studio。 建立新的查詢,並聯機至適當的測試資料庫(例如 AdventureWorks)。

  3. 將下列 Transact-SQL 新增至查詢,以在伺服器中建立元件。

CREATE ASSEMBLY HelloWorld from 'c:\helloworld.dll' WITH PERMISSION_SET = SAFE;

  1. 然後,必須在 SQL Server 實例中建立程式、函數、匯總、使用者定義類型或觸發程式。 如果 HelloWorld 元件在 Procedures 類別中包含 名為 HelloWorld 的方法,可以將下列 Transact-SQL 新增至查詢,以在 SQL Server 中建立名為 hello 的程式。

CREATE PROCEDURE hello

AS

EXTERNAL NAME HelloWorld.Procedures.HelloWorld

如需在 SQL Server 中建立不同 Managed 資料庫物件類型的詳細資訊,請參閱 CLR 使用者定義函數 、CLR 使用者定義匯總 CLR 使用者定義型 別、 CLR 預存程式和 CLR 觸發程式

將元件部署至生產伺服器

在測試伺服器上測試並驗證 CLR 資料庫物件之後,就可以將物件散發到實際執行伺服器。 如需偵錯 Managed 資料庫物件的詳細資訊,請參閱 偵錯 CLR 資料庫物件

受控資料庫物件的部署類似于一般資料庫物件(資料表、Transact-SQL 常式等等)。 包含 CLR 資料庫物件的元件可以使用部署腳本部署到其他伺服器。 您可以使用 Management Studio 的「產生腳本」功能來建置部署腳本。 您也可以手動建置部署腳本,或使用「產生腳本」來建置並手動變更。 建置部署腳本之後,就可以在其他 SQL Server 實例上執行,以部署受控資料庫物件。

使用產生腳本來產生部署腳本

  1. 開啟 Management Studio 並聯機到要部署之受控元件或資料庫物件的 SQL Server 實例註冊。

  2. 在 [物件總 管] 中 < ,展開伺服器名稱和 > 資料庫 樹狀結構。 以滑鼠右鍵按一下已註冊 Managed 資料庫物件的資料庫,選取 [ 工作 ],然後選取 [ 產生腳本 ]。 [腳本精靈] 隨即開啟。

  3. 從清單方塊中選取資料庫,然後按 [下一步 ]。

  4. 在 [ 選擇腳本選項 ] 窗格中,按 [下一步 ],或變更選項,然後按 [ 下一步 ]。

  5. 在 [ 選擇物件類型 ] 窗格中,選擇要部署的資料庫物件類型。 按一下 [下一步] 。

  6. 針對在 [ 選擇物件類型 ] 窗格中選取的每個物件類型,會顯示 [ 選擇 < 類型 > ] 窗格。 在此窗格中,您可以選擇在指定資料庫中註冊之該資料庫物件類型的所有實例。 選取一或多個物件,然後按 [下一步 ]。

  7. 選取 所有所需的資料庫物件類型時,[輸出選項 ] 窗格就會出現。 選取 [要檔案 的腳本] 並指定腳本的檔案路徑。 選取 [下一步] 。 檢閱您的選取專案,然後按一下 [ 完成 ]。 部署腳本會儲存至指定的檔案路徑。

部署後腳本

您可以執行部署後腳本。

若要新增部署後腳本,請在 Visual Studio 專案目錄中新增名為 postdeployscript.sql 的檔案。 例如,以滑鼠右鍵按一下方案總管中的 專案,然後選取 [ 新增現有專案 ]。 將檔案新增到專案的根目錄中,而不是在 [測試腳本] 資料夾中。

當您按一下 [部署] 時,Visual Studio 會在部署專案之後執行此腳本。

另請參閱

Common Language Runtime (CLR) 整合程式設計概念