Partilhar via


Microsoft Extensibility SDK for C# for SQL Server

Aplica-se a: SQL Server 2019 (15.x) e versões posteriores

Aprenda como pode implementar um programa em C# para SQL Server usando o Microsoft Extensibility SDK para .NET. O SDK é uma interface para a extensão da linguagem .NET que é usada para trocar dados com o SQL Server e para executar código C# a partir do SQL Server.

O código é open source e pode ser encontrado no repositório SQL Server Language Extensions GitHub.

Requisitos de implementação

A interface SDK define um conjunto de requisitos que precisam de ser cumpridos para que o SQL Server possa comunicar com o runtime .NET. Para usar o SDK, precisas de seguir algumas regras de implementação na tua classe principal. O SQL Server pode então executar um método específico em C# e trocar dados usando a extensão da linguagem .NET.

Para um exemplo de como pode usar o SDK, veja Tutorial: Procure uma string usando expressões regulares (regex) em C#.

Classes SDK

O SDK é composto por várias classes.

  • A classe AbstractSqlServerExtensionExecutor abstrata define a interface que a extensão .NET utiliza para trocar dados com o SQL Server.

  • Várias classes auxiliares implementam o objeto conjunto de CSharpDataSet dados.

Na secção seguinte, encontras descrições de cada classe no SDK. O código-fonte das classes SDK está disponível no repositório GitHub das Extensões da Linguagem SQL Server.

Classe: AbstractSqlServerExtensionExecutor

A classe AbstractSqlServerExtensionExecutor abstrata contém a interface usada para executar código C# pela extensão da linguagem .NET para SQL Server.

A tua classe principal de C# tem de herdar desta classe. Herdar desta classe significa que há certos métodos na classe que precisas de implementar na tua própria classe.

Para herdar desta classe abstrata, estende-se com o nome da classe abstrata na declaração da classe, onde MyClass é o nome da sua classe:

public class MyClass : AbstractSqlServerExtensionExecutor {}

No mínimo, a sua classe principal precisa de implementar o método Execute(...).

O método Execute

O Execute método é o que é chamado a partir do SQL Server através da extensão da linguagem .NET, para invocar código C# do SQL Server. É um método chave onde inclui as principais operações que deseja executar a partir do SQL Server.

Para passar argumentos de método para C# a partir do SQL Server, use o @param parâmetro em sp_execute_external_script. O Execute método apresenta os seus argumentos dessa forma.

public abstract DataFrame Execute(DataFrame input, Dictionary<string, dynamic> sqlParams);

O método Init

O Init método é executado depois do construtor e antes do Execute método. Quaisquer operações que precisem de ser realizadas antes Execute podem ser feitas neste método.

public virtual void Init(string sessionId, int taskId, int numTasks);

Classe: CSharpExtension

A classe CSharpExtension implementa todas as extensões de linguagem APIs e devolve os resultados ao host nativo.

Classe: CSharpDataSet

A classe CSharpDataSet abstrata contém a interface para o tratamento de dados de entrada e saída usada pela extensão .NET.