DOCUMENTAÇÃO DE PROCEDURES E TRIGGERS

Deparei-me com o seguinte desafio no Fórum do MSDN: backup da base de dados SQL Server em um Web Hosting.
Como a única opção fornecida pelo fornecedor do serviço era uma exportação de tabelas, os objetos como procedures, triggers, functions views, dentre outros, não poderiam ser exportados, então sugeri a criação de uma tabela de documentação desses objetos.
 
Existe também o "Database Publishing Wizard", que pode gerar um script de todo o schema do banco e dar suporte a web hosting.
 
Segue script.
 
/* ##### CRIA TABELA DE CONTROLE (DOCUMENTAÇÃO) #####*/
if not exists(select 1 from sysobjects where name = ‘documentacao’ )
create table documentacao
(objetoid int primary key,
nome_objecto varchar(250),
Objeto_referencia varchar(250),
tipo char(1),
dt_criacao datetime,
script text)
go
/* ##### CRIA PROCEDURE COM INSTRUÇÕES PARA DOCUMENTAÇAO #####*/
create proc pr_documentacao
as
set nocount on
declare @cmd varchar(1000),@objeto varchar(250),@objeto_referencia varchar(250),@criacao datetime,@id int,@tipo char(1),@script varchar(8000)
declare obj cursor for
select o.id,o.name,object_name(o.parent_obj),o.crdate,o.xtype,c.text from sysobjects o, syscomments c where c.id=o.id
open obj
fetch next from obj into @id,@objeto,@objeto_referencia,@criacao,@tipo,@script
while @@fetch_status=0
begin
insert into documentacao(objetoid,nome_objecto,Objeto_referencia,dt_criacao,tipo,script)
select @id,@objeto,@objeto_referencia,@criacao,@tipo,@script where @id not in(select objetoid from documentacao )
fetch next from obj into @id,@objeto,@objeto_referencia,@criacao,@tipo,@script
end
close obj
deallocate obj
go
/* ##### Executa procedure para documentar objetos #####*/
exec pr_documentacao
 
Até mais,
Emanuel Peixoto.
Emanuel Peixoto

* Capitão do Exército Brasileiro (QCO/Informática/2011)
* Formado em Sistemas de Informação.
* Criador do blog “Rumo à EsFCEx”
* Chefe da Seção de Informática do Hospital Militar de Área de Recife
* Profissional com mais de 15 anos de experiência na área de TI,atuando como Engenheiro de Sistemas e DBA
* Microsoft Certified – MCDBA | MCSE | MCSA | MCITP | MCTS
* IBM Certified Developer – Cognos 8 BI Data Warehouses
* ITIL® V2 e V3
* Green IT Citizen
* ISO/IEC 27002

http://www.mycertprofile.com/Profile/1915602619
http://www.mycertprofile.com/Profile/1915602619

Facebook Twitter LinkedIn Google+ YouTube