none
Encontrar tabelas sem índices clusterizados RRS feed

  • Pergunta

  • Bom dia pessoal, mais uma vez eu aqui com dúvidas (esse livro na minha mão é um perigo...rsrs)

    Alguém sabe como faço pra encontrar todas as tabelas que estão sem um índice clusterizado em um banco?

    Abraços para todos :)

    terça-feira, 20 de março de 2012 11:59

Respostas

  • SELECT SCHEMA_NAME(schema_id) AS SchemaName,name AS TableName
     FROM sys.tables
     WHERE OBJECTPROPERTY(OBJECT_ID,'TableHasPrimaryKey') = 0
     ORDER BY SchemaName, TableName;
     


    Eduardo Gomes - http://www.h1solucoes.com.br - Twitter: @edugp_sp

    • Marcado como Resposta Sounobre terça-feira, 20 de março de 2012 16:30
    terça-feira, 20 de março de 2012 12:40
  • Bom Dia,

    Índice cluster e chave primária normalmente andam juntos, mas não são a mesma coisa. É possível criar chaves primárias não clusterizadas e nesse caso, a consulta não retornará o valor correto. Para descobrir que tabelas não estão clusterizadas, use a consulta abaixo:

    SELECT name FROM sys.tables As T
    WHERE NOT EXISTS (
     SELECT object_id, * FROM sys.indexes As I
     WHERE index_id = 1 AND T.object_id = I.object_id)

    [ ]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

    • Sugerido como Resposta Gustavo Maia Aguiar terça-feira, 20 de março de 2012 14:11
    • Marcado como Resposta Sounobre terça-feira, 20 de março de 2012 16:29
    terça-feira, 20 de março de 2012 14:10

Todas as Respostas

  • SELECT SCHEMA_NAME(schema_id) AS SchemaName,name AS TableName
     FROM sys.tables
     WHERE OBJECTPROPERTY(OBJECT_ID,'TableHasPrimaryKey') = 0
     ORDER BY SchemaName, TableName;
     


    Eduardo Gomes - http://www.h1solucoes.com.br - Twitter: @edugp_sp

    • Marcado como Resposta Sounobre terça-feira, 20 de março de 2012 16:30
    terça-feira, 20 de março de 2012 12:40
  • Bom Dia,

    Índice cluster e chave primária normalmente andam juntos, mas não são a mesma coisa. É possível criar chaves primárias não clusterizadas e nesse caso, a consulta não retornará o valor correto. Para descobrir que tabelas não estão clusterizadas, use a consulta abaixo:

    SELECT name FROM sys.tables As T
    WHERE NOT EXISTS (
     SELECT object_id, * FROM sys.indexes As I
     WHERE index_id = 1 AND T.object_id = I.object_id)

    [ ]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

    • Sugerido como Resposta Gustavo Maia Aguiar terça-feira, 20 de março de 2012 14:11
    • Marcado como Resposta Sounobre terça-feira, 20 de março de 2012 16:29
    terça-feira, 20 de março de 2012 14:10
  • Obrigado pessoal.

    Diego Nobre

    terça-feira, 20 de março de 2012 16:30