Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
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
AbstractSqlServerExtensionExecutorabstrata 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
CSharpDataSetdados.
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.