Clique no banner para conhecer e adquirir o meu treinamento de Bancos de Dados no Azure

Realizando requisições POST e GET utilizando CLR (C#) no SQL Server

Post Views 4,976 views
Reading time 4 minutes

Olá pessoal,
Boa tarde!

Neste post estarei demonstrando pra vocês como realizar requisições POST e GET (na verdade, pode ser qualquer tipo) em um banco de dados SQL Server utilizando o SQL CLR.

Se você não sabe o que é CLR ou tem dúvidas sobre como utilizar, como publicar, etc, veja este post aqui.

Eu já havia feito alguns posts aqui no blog demonstrando como fazer isso utilizando OLE Automation, mas como o CLR é uma alternativa muito mais segura e flexível, resolvi demonstrar como fazer isso utilizando o CLR (C#).

Código-fonte da procedure stpWs_Requisicao:

Exemplo de utilização

Uma vez que a procedure já tenha sido criada e o assembly tenha sido publicado no seu servidor, basta utilizar a SP para realizar suas requisições normalmente, como os exemplos abaixo:

SQL Server - Post and Get Requests with SQL CLR

Como criar as bibliotecas do SQLCLR apenas com T-SQL

Clique aqui para visualizar o conteúdo
Caso você queira utilizar o SQLCLR, esse tópico serve para instalar os objetos necessários para conseguir seguir os exemplos desse artigo, sem precisar criar um novo projeto do Visual Studio e fazer o deploy manualmente do projeto.

A forma mais simples e robusta de se realizar requisições HTTP pelo SQL Server é, sem dúvidas, utilizando o SQLCLR (clique aqui se você não sabe nem o que é o SQLCLR).

Como criar a stpWs_Requisicao no seu ambiente (SQL Server 2012 ao 2016):

Caso você esteja utilizando as versões 2012, 2014 ou 2016 do SQL Server, pode utilizar o script abaixo para criar o assembly (DLL) no banco de dados desejado e a stored procedure “stpWs_Requisicao”, que é utilizada para realizar a requisição HTTP da API.

Como criar a stpWs_Requisicao no seu ambiente (SQL Server 2017+):

Caso você esteja utilizando uma versão superior ou igual a 2017 do SQL Server, pode utilizar o script abaixo para criar o assembly (DLL) no banco de dados desejado e a stored procedure “stpWs_Requisicao”, que é utilizada para realizar a requisição HTTP da API. Esse script é diferente do anterior, pois a partir da versão 2017, o SQL Server agora exige a assinatura de assemblies até mesmo no modo Safe, devido à mudanças na segurança do .NET Framework.

Próximos passos

Agora que vocês já aprenderam a realizar as requisições a partir do próprio banco de dados, vocês podem implementar as SP’s abaixo no seu banco de dados, desta vez, utilizando o poder do CLR:

A alteração é bem simples, basta trocar estas instruções:

por essa:

Bem mais simples, não ?
Um abraço e até o próximo post!

sql server clr integração integration post get requisições requests database banco de dados c# csharp sqlclr

sql server clr integração integration post get requisições requests database banco de dados c# csharp sqlclr