Пакет SDK расширяемости Майкрософт для C# для SQL Server
Область применения: SQL Server 2019 (15.x) и более поздних версий
Узнайте, как реализовать программу C# для SQL Server с помощью пакета SDK расширяемости Майкрософт для .NET. Пакет SDK — это интерфейс расширения языка .NET, который используется для обмена данными с SQL Server и выполнения кода C# из SQL Server.
Это открытый код, который можно найти в репозитории расширений языка SQL Server в GitHub.
Требования к реализации
Интерфейс ПАКЕТА SDK определяет набор требований, необходимых для взаимодействия SQL Server с средой выполнения .NET. Чтобы использовать пакет SDK, необходимо выполнить некоторые правила реализации в основном классе. ЗАТЕМ SQL Server может выполнять определенный метод в C# и обмениваться данными с помощью расширения языка .NET.
Пример использования пакета SDK см. в руководстве по поиску строки с помощью регулярных выражений (regex) в C#.
Классы SDK
Пакет SDK состоит из нескольких классов.
Абстрактный класс
AbstractSqlServerExtensionExecutor
определяет интерфейс, который использует расширение .NET для обмена данными с SQL Server.Несколько вспомогательных классов реализуют
CSharpDataSet
объект набора данных.
В следующем разделе описаны описания каждого класса в пакете SDK. Исходный код классов в пакете SDK доступен в репозитории расширений языка SQL Server в GitHub.
Класс: AbstractSqlServerExtensionExecutor
Абстрактный класс AbstractSqlServerExtensionExecutor
содержит интерфейс, используемый для выполнения кода C# расширением языка .NET для SQL Server.
Основной класс C# должен наследоваться от этого класса. Наследование этому классу означает наличие в классе определенных методов, которые должны быть реализованы в вашем собственном классе.
Чтобы наследовать от этого абстрактного класса, вы расширяете имя абстрактного класса в объявлении класса, где MyClass
имя класса:
public class MyClass : AbstractSqlServerExtensionExecutor {}
Как минимум, основной класс должен реализовать Execute(...)
метод.
Метод Execute
Метод Execute
— это метод, который вызывается из SQL Server через расширение языка .NET, чтобы вызвать код C# из SQL Server. Это ключевой метод, в котором вы включаете основные операции, которые вы хотите выполнить из SQL Server.
Чтобы передать аргументы метода в C# из SQL Server, используйте @param
параметр в sp_execute_external_script
. Метод 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
Класс реализует все API расширений языка и возвращает результаты собственному узлу CSharpExtension
.
Класс: CSharpDataSet
Абстрактный класс CSharpDataSet
содержит интерфейс для обработки входных и выходных данных, используемых расширением .NET.