Ir para conteúdo
Fórum Script Brasil
  • 0

Encontrar Tabelas invalidas


Baall

Pergunta

Boa Tarde,

sou novo no Fórum e gostaria de uma ajuda... procurei nos posts e não encontrei oque preciso ainda...

alguém poderia me dar uma força no SQL 2000? gostaria de encontrar tabelas que não estão sendo usadas em um banco... pois de tanto criar tabelas para adequar aos clientes, o banco ficou cheio de tabelas "inúteis", mas eu não consegui separar todas as tabelas não utilizadas apenas de olhar...

alguém poderia ajudar? os comandos que encontrei pesquisando no google não funcionaram aqui... (sou novo no ramo de Banco de dados... não conheço muito...)

Grato!

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

Boa tarde Baall,

Seja bem vindo ao Forum!!

Este levantamento é bem interessante de implementar... muitas pessoas precisam destes dados, principalmente quando começam a ficar perdidas no próprio Banco (rs).

Uma alternativa é criar uma temporária e ir contando os registros de cada tabela da sua Base. As tabelas que possuem menos dados cadastrados (ou nenhum) são boas candidatas de pesquisa. Mas cuidado com as tabelas recém criadas.

Segue um script que fiz. Espero que ajude:

-- criando tabela temporária
CREATE TABLE #Tabelas (Nome VARCHAR(100), Qtd INT)

-- inserindo todas as tabelas da Base
INSERT INTO #Tabelas (nome)
SELECT name FROM sysobjects WHERE xtype='U'

-- rodar daqui até no final
DECLARE @Sql VARCHAR(500)
DECLARE @NomeTabela VARCHAR(100)

SET @NomeTabela = (SELECT top 1 nome FROM #Tabelas WHERE qtd IS NULL)

WHILE @NomeTabela IS NOT NULL
BEGIN
    SET @Sql = 'UPDATE #Tabelas SET qtd=(SELECT COUNT(*) FROM ' + @NomeTabela + ') WHERE Nome = ''' + @NomeTabela + ''''
    EXEC (@sql)
    SET @NomeTabela = (SELECT top 1 nome FROM #Tabelas WHERE qtd IS NULL)
END



-- Verificando os dados, depois de executado o loop
SELECT * FROM #Tabelas

Link para o comentário
Compartilhar em outros sites

  • 0

Bom Dia,

Obrigado pelo bem vindo, gostei do fórum! ótimos programadores e boas dicas! já utilizei muitas delas e entre no fórum ontem... Parabéns!

bom, pintou outra duvida... teria alguma forma de saber onde estas tabelas com valor "0" estão sendo utilizadas pelo sistema? eu até abri o enterprise maneger e olhei em design table... vi algumas ligações delas e tal... mas também vi umas tabelas que não tem ligações porem são usadas pelo sistema ( conheço algumas... mas não todas por isso a duvida ).

Link para o comentário
Compartilhar em outros sites

  • 0

Bom dia Baall,

Q bom q estou do Fórum... :.)

Para saber se elas estão sendo utilizadas ou não, terá que vasculhar o fonte mesmo. Pelo banco de dados não tem jeito. você pode até monitorar o acesso às tabelas de sua base, mas isso não garantirá nada....

O que pode fazer na pior da hipóteses (rs), é renomear as tabelas candidatas a exclusão. Caso alguém reclame, você volta o nome (gambiarra pura, mas funciona).

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      651,9k
×
×
  • Criar Novo...