共用方式為


在 Windows 上安裝 SQL Server .NET 語言延伸模組

適用於:SQL Server 2019 (15.x) 和更新版本

了解如何在 Windows 上安裝適用於 SQL Server 的 .NET 語言延伸模組元件 (由 C# 使用)。 .NET 語言延伸模組是 SQL Server 語言延伸模組的一部分。

注意

此文章適用於在 Windows 上安裝適用於 SQL Server 的 .NET 語言延伸模組。 不支援 Linux。

必要條件

注意

功能和安裝選項會因 SQL Server 的版本而異。 使用版本選取器下拉式清單來選擇適當的 SQL Server 版本。

  • 如果您想要安裝 .NET 語言延伸模組的支援,則需要 SQL Server 安裝程式。

  • .NET 語言延伸模組支援 .NET 6 和更新版本的執行階段,而且僅在 Windows 上受支援。

  • 需要資料庫引擎執行個體。 您無法只安裝 .NET 語言延伸模組功能,但是您可以透過累加方式將其新增至現有的執行個體。

  • 針對商務持續性,語言延伸模組支援 Always On 可用性群組。 您必須在每個節點上安裝語言延伸模組,並設定套件。 亦支援在 SQL Server 中的容錯移轉叢集執行個體上安裝 .NET 語言延伸模組。

  • 請勿在網域控制站上安裝 SQL Server 語言延伸模組或 .NET 語言延伸模組。 安裝程式的語言延伸模組部分會失敗。

  • 根據預設,系統會在 SQL Server 巨量資料叢集上安裝語言延伸模組與機器學習服務。 如果您使用的是巨量資料叢集,就不需要依照此文章中的步驟進行。 如需詳細資訊,請參閱對安裝有機器學習服務的 SQL Server 2019 巨量資料叢集執行 Python 與 R 指令碼

重要

安裝完成之後,請務必完成此文章中所述的設定後步驟。 這些步驟包括讓 SQL Server 使用外部程式碼,以及新增 SQL Server 代表您執行 C# 程式碼所需的帳戶。 設定變更通常需要重新啟動執行個體,或重新啟動啟動控制板服務。

.NET 執行階段

.NET 6 長期支援 (LTS) 是最早支援的執行階段。 您可以下載適用於 Windows 的 .NET 執行階段。 不支援 Linux。

如果您想要使用 .NET 執行階段的最新 LTS 版本,則必須重新編譯 .NET 語言延伸模組。

取得安裝媒體

SQL Server 的下載位置因版本而異:

  • SQL Server Enterprise、Standard 和 Express Edition。 這些版本已獲得生產環境使用授權。 對於 Enterprise Edition 和 Standard Edition,請連絡您的軟體廠商以取得安裝媒體。 購買資訊和 Microsoft 合作夥伴目錄請見 Microsoft 購買網站

  • 最新的免費版本

執行安裝程式

如果是本機安裝,您必須以管理員身分執行安裝程式。 如果您是從遠端共用位置安裝 SQL Server,則必須使用對遠端共用位置具有讀取和執行權限的網域帳戶。

  1. 啟動 SQL Server 的安裝精靈。

  2. 在 [安裝] 索引標籤上,選取 [新增 SQL Server 獨立安裝或將功能加入至現有安裝] 。

  3. 在 [特徵選取] 頁面上,選取下列選項:

    資料庫引擎服務:若要搭配 SQL Server 使用語言延伸模組,您必須安裝資料庫引擎的執行個體。 您可以使用預設或具名執行個體。

    機器學習服務和語言延伸模組:此選項會安裝支援 C# 程式碼執行的語言延伸模組元件。

    執行個體功能的螢幕擷取畫面。

  4. 在 [準備安裝] 頁面上,確認包含這些選項,然後選取 [安裝] 。

    • Database Engine 服務
    • 機器學習服務和語言延伸模組

    請注意組態檔儲存所在資料夾 (路徑 ..\Setup Bootstrap\Log 底下) 的位置。 當安裝程式完成時,您可以在摘要檔案中檢閱已安裝的元件。

  5. 當安裝程式完成之後,如果系統指示您重新啟動電腦,則請立即重新啟動。 當您完成安裝時,請務必閱讀安裝精靈提供的訊息。 如需詳細資訊,請參閱< View and Read SQL Server Setup Log Files>。

註冊語言延伸模組

  1. 遵循下列步驟來下載並註冊用於執行 C# 程式碼的 .NET 語言延伸模組。

    1. SQL Server GitHub 存放庫的 .NET 語言延伸模組下載 dotnet-core-CSharp-lang-extension-windows-release.zip 檔案。 下載最新的 Windows dotnet-core-CSharp-lang-extension-windows-release.zip 檔案。 如果您想要使用較新的 .NET 執行階段間,則需要從 GitHub 原始程式碼編譯 dotnet-core-CSharp-lang-extension

    2. 使用 SQL Server Management Studio (SSMS)Azure Data Studio 來連線到您的 SQL Server 執行個體,並執行下列 Transact-SQL (T-SQL) 命令,以使用 CREATE EXTERNAL LANGUAGE 註冊 .NET 語言延伸模組。

    3. 修改此陳述式中的路徑,以反映所下載語言延伸模組 zip 檔案 (dotnet-core-CSharp-lang-extension-windows-release.zip) 的位置。

    CREATE EXTERNAL LANGUAGE [dotnet]
    FROM (CONTENT = N'C:\path\to\dotnet-core-CSharp-lang-extension-windows-release.zip',
        FILE_NAME = 'dotnetextension.dll');
    GO
    
  2. 重新啟動啟動控制板

    1. 開啟 SQL Server 組態管理員

    2. 在 [SQL Server 服務] 底下,以滑鼠右鍵按一下 [SQL Server 啟動控制板],然後選取 [重新啟動] 。

重新啟動服務

當安裝完成時,請先重新啟動資料庫引擎,然後再繼續執行下一個步驟,以啟用指令碼執行。

重新啟動該服務也會自動重新啟動相關的 SQL Server Launchpad 服務。

針對 SSMS 中的執行個體,可使用滑鼠右鍵按一下 [重新啟動] 命令,使用控制面板中的 [服務] 面板,或使用 SQL Server 組態管理員來重新啟動服務。

啟用指令碼執行

  1. 開啟 SQL Server Management Studio。 連線到您安裝語言延伸模組的執行個體、選取 [新增查詢] 開啟查詢視窗,然後執行下列命令:

    EXEC sp_configure;
    

    該功能預設為關閉 (value0),因此必須先由管理員明確啟用,才可以執行 C# 程式碼。

  2. 若要啟用外部指令碼功能,請執行下列陳述式:

    EXEC sp_configure 'external scripts enabled', 1;
    GO
    RECONFIGURE WITH OVERRIDE
    

    如果您已針對機器學習服務啟用該功能,則請不要再次執行語言延伸模組的重新設定。 底層擴充性平台支援這兩者。

註冊外部語言

針對您要在其中使用語言擴充功能的每個資料庫,您必須使用 CREATE EXTERNAL LANGUAGE 來註冊外部語言。

下例會將外部語言呼叫的 dotnet 新增至 Windows 之 SQL Server 的資料庫。

CREATE EXTERNAL LANGUAGE [dotnet]
FROM (CONTENT = N'<path-to-zip>', FILE_NAME = 'dotnetextension.dll');
GO

如需詳細資訊,請參閱 CREATE EXTERNAL LANGUAGE

確認安裝

在安裝程式記錄中,檢查執行個體的安裝狀態。

使用下列步驟確認用於啟動外部指令碼的所有元件都正在執行。

  1. 在 SQL Server Management Studio 或 Azure Data Studio 中,開啟新的 [查詢] 視窗,並執行下列陳述式︰

    EXEC sp_configure 'external scripts enabled';
    

    run_value 現在設定為 1

  2. 開啟 [服務] 面板或 SQL Server 組態管理員,並確認 SQL Server Launchpad 服務正在執行。 每個安裝語言延伸模組的資料庫引擎執行個體應該都有一個該服務。 如需服務的詳細資訊,請參閱 SQL Server 語言延伸模組中的擴充性架構

其他設定

如果驗證步驟成功,您就可以從 SQL Server Management Studio、Azure Data Studio、Visual Studio Code,或任何可以將 T-SQL 陳述式傳送到伺服器的其他用戶端來執行 C# 程式碼。

如果您在執行命令時遇到錯誤,請檢閱此節中的其他設定步驟。 您可能需要對服務或資料庫進行額外的適當設定。

在執行個體層級,額外設定可能包括:

在資料庫上,您可能需要下列設定更新:

注意

是否需要其他設定取決於您的安全性架構、SQL Server 的安裝位置,以及預期使用者如何連線至資料庫並執行外部指令碼。

建議的最佳化

在一切都正常運作之後,建議您將伺服器最佳化以支援 .NET 語言延伸模組。

針對 .NET 語言延伸模組將伺服器最佳化

SQL Server 安裝程式的預設設定是為了最佳化伺服器的平衡,以處理資料庫引擎支援的各種服務,其中可能包含擷取、轉換和載入 (ETL) 程序、報告、稽核,以及使用 SQL Server 資料的應用程式。 因此,在預設設定下,您可能會發現語言延伸模組的資源有時會受到限制或遭遇瓶頸,尤其是需要大量記憶體的作業。

為確保優先處理語言延伸模組工作並獲得適當的資源,建議您使用 SQL Server 資源管理員設定外部資源集區。 您也可以變更配置給資料庫引擎的記憶體數量,或增加在 SQL Server Launchpad 服務下執行的帳戶數目。

如果您使用標準版且沒有「資源管理員」,則可以使用「動態管理檢視 (DMV)」與「擴充事件」,以及 Windows 事件監視,以協助管理伺服器資源。

後續步驟

C# 開發人員可以從一些簡單的範例開始,並了解 C# 如何搭配 SQL Server 使用的基本概念。 針對下一個步驟,請參閱下列連結: