E de repente meu gerente entra na sala com um esboço de um DER (Diagrama de Entidade Relacional) feito a caneta e solicita em caráter de urgência sua digitalização e também a geração do DD (Dicionário de Dados). E agora?

Bom, quem administra SQL Server sabe que o próprio tem sua ferramenta para desenvolver um DER. Mas também sabe que em sua versão 2000, o mesmo não possui nenhuma ferramenta para geração do DD. E agora?

Foi pesquisando na maior biblioteca virtual do mundo (Google) que encontrei um script que resolve o problema, bastando abrir o Query Analyzer, selecionar o banco de dados desejado e então executa isto:

— INICIO

SET NOCOUNT ON

DECLARE @Id_Tabela int, @Nome_Tabela varchar(50)
PRINT ‘BANCO DE DADOS: ‘ + UPPER(db_name())
PRINT ”
DECLARE tabelas CURSOR FOR SELECT Name, ID FROM sysobjects WHERE xtype = ‘U’ AND Name <> ‘dtProperties’
ORDER BY Name
OPEN tabelas
FETCH NEXT FROM tabelas INTO @Nome_Tabela, @Id_Tabela
WHILE @@FETCH_STATUS = 0
BEGIN
PRINT ‘TABELA: ‘ + UPPER(@nome_tabela)
select nome_campo = LEFT(RTRIM(LTRIM(sc.name)),40),
tipo_campo = LEFT(RTRIM(LTRIM(st.name)),20), tamanho_campo = sc.length, descricao_campo = ISNULL(sp.value,”)
FROM syscolumns sc, systypes st, sysproperties sp WHERE sc.id = @Id_Tabela AND sc.xtype = st.xtype
and sc.colid *= sp.smallid and sp.id = @Id_Tabela

ORDER BY sc.colid
PRINT ”
FETCH NEXT FROM tabelas INTO @Nome_Tabela, @Id_Tabela
END
CLOSE tabelas
DEALLOCATE tabelas

SET NOCOUNT OFF

— FIM

É isso galera, bom proveito!

Contribuição: http://www.linhadecodigo.com.br