Jump to content
Fórum Script Brasil
  • 0

Encontrar Tabelas invalidas


Baall

Question

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 to comment
Share on other sites

3 answers to this question

Recommended Posts

  • 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 to comment
Share on other 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 to comment
Share on other 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 to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152.2k
    • Total Posts
      652k
×
×
  • Create New...