部署 CLR 資料庫物件
適用於:SQL Server
部署是您散發要安裝並在另一部計算機上執行之已完成應用程式或模組的程式。 使用 Visual Studio,您可以開發 Common Language Runtime (CLR) 資料庫物件,並將其部署至測試伺服器。 或者,受控資料庫物件也可以使用 .NET Framework 轉散發檔案編譯,而不是Visual Studio。 編譯之後,就可以使用 Visual Studio 或 Transact-SQL 語句,將包含 CLR 資料庫物件的元件部署到測試伺服器。
在測試伺服器上測試並驗證 CLR 方法之後,就可以使用部署腳本將它們散發到實際執行伺服器。 部署腳本可以手動產生,或使用 SQL Server Management Studio(本文稍後所述)。
根據預設,SQL Server 會關閉 CLR 整合功能,而且必須啟用才能使用 CLR 元件。 如需詳細資訊,請參閱 啟用 CLR 整合。
將元件部署至測試伺服器
使用 Visual Studio,您可以開發 CLR 函式、程式、觸發程式、使用者定義型別(UDT)或使用者定義匯總(UDA),並將其部署至測試伺服器。 這些 Managed 資料庫物件也可以使用命令行編譯程式來編譯,例如 .NET Framework 轉散發檔案隨附的csc.exe和vbc.exe。 不需要 Visual Studio 集成開發環境,即可開發 SQL Server 的受控資料庫物件。
請確定所有編譯程式錯誤和警告都已解決。 然後,可以使用 Visual Studio 或 Transact-SQL 語句,在 SQL Server 資料庫中註冊包含 CLR 例程的元件。
注意
SQL Server 實例必須啟用 TCP/IP 網路協定,才能使用 Visual Studio 進行遠端開發、偵錯及開發。 如需在伺服器上啟用 TCP/IP 通訊協定的詳細資訊,請參閱設定用戶端通訊協定。
使用 Visual Studio 部署元件
從 [建置] 功能選取 [建置 <專案> 名稱],以建置專案。
將元件部署至測試伺服器之前,請先解決所有建置錯誤和警告。
從 [建置] 功能表中選取 [部署]。 然後,元件會在 VISUAL Studio 中第一次建立 SQL Server 專案時指定的 SQL Server 實例和資料庫中註冊。
使用 Transact-SQL 部署元件
使用 .NET Framework 隨附的命令行編譯程式,從來源檔案編譯元件。
針對 C# 原始程式檔:
csc /target:library C:\helloworld.cs
針對 Visual Basic 原始程式檔:
vbc /target:library C:\helloworld.vb
這些命令會使用 /target
選項啟動 C# 或 Visual Basic 編譯程式,以指定建置連結庫 DLL。
將元件部署至測試伺服器之前,請先解決所有建置錯誤和警告。
在測試伺服器上開啟 SQL Server Management Studio。 建立新的查詢,並連線至適當的測試資料庫(例如
AdventureWorks2022
)。將下列 Transact-SQL 新增至查詢,以在伺服器中建立元件。
CREATE ASSEMBLY HelloWorld from 'c:\helloworld.dll' WITH PERMISSION_SET = SAFE;
然後,必須在 SQL Server 實例中建立程式、函數、匯總、使用者定義類型或觸發程式。 如果
HelloWorld
元件在Procedures
類別中包含名為HelloWorld
的方法,則可以將下列 Transact-SQL 新增至查詢,以在 SQL Server 中建立稱為hello
的程式。CREATE PROCEDURE hello AS EXTERNAL NAME HelloWorld.Procedures.HelloWorld;
如需在 SQL Server 中建立不同類型的 Managed 資料庫物件的詳細資訊,請參閱:
將元件部署至生產伺服器
在測試伺服器上測試並驗證 CLR 資料庫物件之後,就可以將物件散發到實際執行伺服器。 如需偵錯 Managed 資料庫物件的詳細資訊,請參閱 如何偵錯 CLR 資料庫物件。
受控資料庫物件的部署類似於一般資料庫物件(數據表、Transact-SQL 例程等等)。 包含 CLR 資料庫物件的元件可以使用部署腳本部署到其他伺服器。 您可以使用Management Studio的 產生腳本 功能來建置部署腳本。 您也可以手動建置部署腳本,或使用 產生腳本 並手動變更來建置。 建置部署腳本之後,就可以在其他 SQL Server 實例上執行,以部署受控資料庫物件。
使用產生腳本來產生部署腳本
開啟 Management Studio 並連線到要部署之受控元件或資料庫物件的 SQL Server 實例註冊。
在 物件總管 中,展開伺服器名稱和 <>[資料庫] 樹狀結構。 以滑鼠右鍵按下已註冊 Managed 資料庫物件的資料庫,選取 [ 工作],然後選取 [ 產生腳本]。 [腳本精靈] 隨即開啟。
從清單框中選取資料庫,然後選取 [下一步]。
在 [
[選擇腳本選項] 窗格中,選取[下一步] ,或變更選項,然後選取 [下一步]。 在 [ 選擇物件類型 ] 窗格中,選擇要部署的資料庫物件類型。 選取 [下一步]。
針對在 [ 選擇物件類型 ] 窗格中選取的每個物件類型,會顯示 [ 選擇 <類型> ] 窗格。 在此窗格中,您可以選擇在指定資料庫中註冊之該資料庫物件類型的所有實例。 選取一或多個物件,然後選取 [下一步]
。 選取所有所需的資料庫物件類型時,[輸出選項] 窗格就會出現。 選取 [要檔案 的腳本] 並指定腳本的檔案路徑。 選取 [下一步]。 檢閱您的選取項目,然後選取 [完成]
。 部署文本會儲存至指定的檔案路徑。
部署後腳本
您可以執行部署後文稿。
若要新增部署後腳本,請在 Visual Studio 專案目錄中新增名為 postdeployscript.sql 的檔案。 例如,以滑鼠右鍵按兩下 方案總管中的項目,然後選取[新增現有專案]。 將檔案新增到專案的根目錄中,而不是在 [測試腳本] 資料夾中。
當您選取 [部署] 時,Visual Studio 會在部署專案之後執行此腳本。