Apesar dos assemblies em .net terem surgido no SQL Server 2005, frequentemente surgem dúvidas relacionadas a implementação. Abaixo segue um pequeno passo a passo de como iniciar o uso do CLR no SQL Server.
O objetivo aqui será criar uma stored procedure que ao ser executada imprima o retorno “Alô Mundo”. Para este desenvolvimento vou utilizar o Visual Studio 2008 com Visual Basic e o SQL Server 2008 R2.
No momento da codificação do objeto de banco de dados no Visual Studio vamos utilizar um objeto chamado SQLPipe. O SQLPipe é o mecanismo utilizado para enviar um objeto de comando de volta ao objeto que o chamou.
Antes de iniciar os passos a seguir garanta que você tem permissão no servidor de banco de dados. Crie um banco de dados teste para aplicar o assembly que será criado.
No menu File do Visual Studio selecione New Project, na tela de Projects Types selecione Database, no painel Templates selecione SQL Server Project.
Ao confirmar a criação deste projeto abrirá uma janela New Database Reference, com pedindo os parâmetros de configuração para acessar o database alvo do desenvolvimento.
No Solution Explorer vamos visualizar a estrutura padrão do template selecionado, para criar a Stored Procedure clique com o botão direito sobre o ícone do projeto (SqlServerProject1) e selecione Add em seguida Stored Procedure.
Ao adicionar o stp_AloMundo.vb ao projeto o mesmo criará uma classe, que será o alvo da edição. Veja o código abaixo:
Deploy do Assembly
O deploy é o processo de entregar o assembly ao destino, nesse caso o banco escolhido no inicio do projeto. Para concluir o deploy basta acessar o menu build e deploy.
Executando a Stored Procedure
Os Assenblies ficam dentro de Programmability, e os objetos pertencentes aos assemblies ficam dentro da pasta dos seus respectivos objetos. Perceba na imagem abaixo que dentro de Stored Procedures há um objeto chamado stp_AloMundo, esse é o fruto do desenvolvimento.
A execução segue como qualquer outra stored procedure do SQL Server, com a sintaxe padrão.
Para finalizar, são diversas as vantagens do uso de .Net Assemblies com o SQL Server entre os quais a mais significativa, na minha opinião, é a poder centralizar alguma regra especifica do negócio sem atribuir ao SQL Server esse processamento.
Abraço, Rodrigo.