Пакет 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.