No SQL Server, como encontramos todas as tabelas que não possuem nenhum dos seguintes:
- restrições de chave estrangeira
- referências por chaves estrangeiras de outras tabelas
No SQL Server, como encontramos todas as tabelas que não possuem nenhum dos seguintes:
A resposta de SwapnilBhate retornará tabelas referenciadas por uma chave estrangeira. Adicionar mais
LEFT JOIN
irá excluir estes:Você pode usar o
sp_fkeys
procedimento para obter as informações lógicas da chave estrangeira. Mas a limitação é que você deve executar passando o nome da tabela como parâmetro de entrada. Mais informações sobre o mesmo podem ser encontradas na biblioteca MSDN abaixo.sp_fkeys
Como alternativa, você pode usar a consulta abaixo para obter todas as tabelas de sys.tables e verificar se a mesma tabela object_id existe em sys.foreign_key_columns.
Para completar, você também pode consultar sys.foreign_keys em vez de sys.foreign_key_columns para localizar tabelas que não são referenciadas e não fazem referência a outras:
A consulta também mostra o nome do esquema de cada tabela, porque às vezes os sistemas são criados usando mais do que apenas o esquema dbo padrão .
Também incluí o
is_ms_shipped = 0
filtro na consulta porque estou assumindo que você deseja excluir tabelas predefinidas/do sistema da pesquisa.Isso também fornecerá a tabela referenciada: