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

SQL Server – Como criar um versionamento de código das suas Stored Procedures em HTML e com comentários da alteração

Post Views 2,465 views
Reading time 7 minutes

Hey guys!

Nesse artigo eu vou compartilhar com vocês como criar um versionamento de código das suas Stored Procedures em HTML e com comentários da alteração. No passado, eu já havia criado o post How to create an Audit trigger to log object manipulation in SQL Server, que mostra como gravar em uma tabela do banco, todas as alterações realizadas em um database, salvando informações sobre quem alterou, quando foi realizada a alteração, qual objeto alterado, e o script T-SQL do DDL/DCL utilizado para realizar essa alteração no banco.

Nesse post eu vou um pouco além disso, criando uma trigger que logue as alterações em uma tabela também, mas force a utilização de uma tag específica que informe o motivo da alteração nessa Stored Procedure (não permite alterar SP’s sem o motivo e nem utilizar o motivo anterior) e ao final da atualização, gera páginas HTML organizadas por objeto com toda a documentação desse objeto e o histórico das alterações.

Código-fonte dos objetos utilizados nesse artigo

Visualizar informações

Tabela utilizada

Log_Procedures

Funções utilizadas

fncDocumentacao_BuscaTag

Stored Procedures utilizadas

stpDOC_geraBloco_Versoes

stpEscreve_Arquivo_FSO

stpDOC_Gera_Arquivos

Trigger utilizada

trgDDLAuditQuery

Lembrando que como utilizo o recurso de OLE Automation na Stored Procedure stpEscreve_Arquivo_FSO para gravar os arquivos no disco, vamos precisar habilitar esse recurso na instância:

Como versionar os códigos

Após criar todos os objetos necessários para esse controle, você verá que não vai conseguir mais alterar uma SP sem informar o motivo da alteração:

Forma simples para documentar as alterações:

Forma completa para documentar as alterações:

Alguns exemplos do resultado final

Página inicial

Visualizando a versão 2

Visualizando a versão 1

And that's it, folks!
Espero que tenham gostado desse post e até a próxima!