適用於 SQL Server 的 Microsoft Extensibility SDK for C#
適用於:SQL Server 2019 (15.x) 和更新版本
了解如何使用「適用於 .NET 的 Microsoft 擴充性 SDK」來實作適用於 SQL Server 的 C# 程式。 SDK 是 .NET 語言延伸模組的介面,可用來與 SQL Server 交換資料,並從 SQL Server 執行 C# 程式碼。
此程式碼是開放原始碼,而且可以在 SQL Server 語言延伸模組 GitHub 存放庫中找到。
實作需求
SDK 介面會定義一組需求,必須滿足這組需求,SQL Server 才能與 .NET 執行階段進行通訊。 若要使用 SDK,您必須在主要類別中遵循一些實作規則。 之後,SQL Server 可以執行 C# 中的特定方法,並使用 .NET 語言延伸模組交換資料。
如需如何使用 SDK 的範例,請參閱教學課程:在 C# 中使用規則運算式 (regex) 搜尋字串。
SDK 類別
SDK 是由數個類別所組成。
抽象類別
AbstractSqlServerExtensionExecutor
會定義 .NET 延伸模組用來與 SQL Server 交換資料的介面。數個協助程式類別會實作
CSharpDataSet
資料集物件。
在下一節中,您會在 SDK 中找到每個類別的描述。 您可以在 SQL Server 語言延伸模組 GitHub 存放庫中找到 SDK 類別的原始程式碼。
類別:AbstractSqlServerExtensionExecutor
抽象類別 AbstractSqlServerExtensionExecutor
包含適用於 SQL Server 的 .NET 語言延伸模組用來執行 C# 程式碼的介面。
您的主要 C# 類別必須繼承自此類別。 繼承自此類別表示類別中有您必須在自己的類別中實作的特定方法。
若要繼承自這個抽象類別,您可以在類別宣告中使用抽象類別名稱來擴充,其中 MyClass
為類別名稱:
public class MyClass : AbstractSqlServerExtensionExecutor {}
您的主要類別至少必須實作 Execute(...)
方法。
Execute
方法
Execute
方法是從 SQL Server 透過 .NET 語言延伸模組呼叫的方法,用來從 SQL Server 叫用 C# 程式碼。 這是一個重要的方法,其中包含您想要從 SQL Server 執行的主要作業。
若要從 SQL Server 將方法引數傳遞至 C#,請在 sp_execute_external_script
中使用 @param
參數。 Execute
方法會以該方式接受其引數。
public abstract DataFrame Execute(DataFrame input, Dictionary<string, dynamic> sqlParams);
Init
方法
Init
方法會在建構函式之後和 Execute
方法之前執行。 需要在 Execute
之前執行的任何操作都可以使用這個方法來完成。
public virtual void Init(string sessionId, int taskId, int numTasks);
類別:CSharpExtension
類別 CSharpExtension
會實作所有語言延伸模組 API,並將結果傳回原生主機。
類別:CSharpDataSet
抽象類別 CSharpDataSet
包含用來處理 .NET 延伸模組所使用之輸入和輸出資料的介面。