none
Localizar tabelas vazias RRS feed

  • Pergunta

  • Bom dia galera,

    Trabalho com SQL 2005 e tenho um BD com aproximadamente 1800 tabelas. Sei que uma boa parte encontra-se vazia. Algum código pronto que me liste quais são essas tabelas vazias??

    Att,

    Edgar


    Rombesso

    terça-feira, 24 de abril de 2012 13:09

Respostas

  • Olá Edgar,

    veja se este script te ajuda

    listar tabelas e sua colunas

    SELECT O.NAME, SUM(S.ROW_COUNT) 
    	FROM SYS.OBJECTS O 
    		INNER JOIN SYS.DM_DB_PARTITION_STATS S 
    			ON O.OBJECT_ID=S.OBJECT_ID
    WHERE O.TYPE='U'
    GROUP BY O.NAME
    ORDER BY SUM(S.ROW_COUNT) DESC

    somente tabelas vazias

    SELECT O.NAME, SUM(S.ROW_COUNT) 
    	FROM SYS.OBJECTS O 
    		INNER JOIN SYS.DM_DB_PARTITION_STATS S 
    			ON O.OBJECT_ID=S.OBJECT_ID
    WHERE O.TYPE='U'
    GROUP BY O.NAME
    HAVING SUM(S.ROW_COUNT) = 0



    Att.
    Lukas Baldan


    terça-feira, 24 de abril de 2012 13:40
  • Bom Dia,

    Eu faria um pouco diferente.

    SELECT DISTINCT OBJECT_NAME(object_id) FROM sys.partitions
    WHERE rows = 0 and OBJECTPROPERTY(object_id,'isusertable') = 1

    [ ]s,

    Gustavo Maia Aguiar
    Blog: http://gustavomaiaaguiar.wordpress.com
    Vídeos:http://www.youtube.com/user/gmasql


    Classifique as respostas. O seu feedback é imprescindível

    terça-feira, 24 de abril de 2012 14:15

Todas as Respostas

  • Olá Edgar,

    veja se este script te ajuda

    listar tabelas e sua colunas

    SELECT O.NAME, SUM(S.ROW_COUNT) 
    	FROM SYS.OBJECTS O 
    		INNER JOIN SYS.DM_DB_PARTITION_STATS S 
    			ON O.OBJECT_ID=S.OBJECT_ID
    WHERE O.TYPE='U'
    GROUP BY O.NAME
    ORDER BY SUM(S.ROW_COUNT) DESC

    somente tabelas vazias

    SELECT O.NAME, SUM(S.ROW_COUNT) 
    	FROM SYS.OBJECTS O 
    		INNER JOIN SYS.DM_DB_PARTITION_STATS S 
    			ON O.OBJECT_ID=S.OBJECT_ID
    WHERE O.TYPE='U'
    GROUP BY O.NAME
    HAVING SUM(S.ROW_COUNT) = 0



    Att.
    Lukas Baldan


    terça-feira, 24 de abril de 2012 13:40
  • Bom Dia,

    Eu faria um pouco diferente.

    SELECT DISTINCT OBJECT_NAME(object_id) FROM sys.partitions
    WHERE rows = 0 and OBJECTPROPERTY(object_id,'isusertable') = 1

    [ ]s,

    Gustavo Maia Aguiar
    Blog: http://gustavomaiaaguiar.wordpress.com
    Vídeos:http://www.youtube.com/user/gmasql


    Classifique as respostas. O seu feedback é imprescindível

    terça-feira, 24 de abril de 2012 14:15
  • Obrigado Lukas e Gustavo,

    Ambas opções resolveram meu problema.

    Tks

    Edgar


    Rombesso

    terça-feira, 24 de abril de 2012 15:17