Existe uma maneira de pesquisar um valor (no meu caso, é um UID do tipo char(64)
) dentro de qualquer coluna de qualquer tabela dentro de um banco de dados MS SQL Server?
Estou sentado em frente a um banco de dados enorme, sem nenhuma ideia de como as tabelas devem ser vinculadas. Para descobrir isso, gostaria de listar todas as tabelas e suas colunas que contêm um determinado valor em qualquer linha. Isso é possível?
Uma maneira poderia ser simplesmente despejar todo o banco de dados em um arquivo de texto e usar qualquer editor de texto para pesquisar o valor - mas isso seria um problema se o banco de dados fosse muito grande.
Respostas:
http://vyaskn.tripod.com/search_all_columns_in_all_tables.htm
EDIT: Aqui está o T-SQL real, em caso de podridão do link:
fonte
Todas as ferramentas de terceiros mencionadas abaixo são 100% gratuitas.
Usei o ApexSQL Search com bom êxito para pesquisar objetos e dados em tabelas. Ele vem com vários outros recursos, como diagramas de relacionamento e outros ...
No entanto, fui um pouco lento com bancos de dados grandes (Banco de dados TFS de 40 GB) ...
Além disso, há também o pacote SSMS Tools que oferece muitos outros recursos que são bastante úteis, embora não estejam diretamente relacionados à pesquisa de texto.
fonte
Expandai o código, porque não me disse o '
record number
', e devo localizá-lo novamente.fonte
Fonte: http://fullparam.wordpress.com/2012/09/07/fck-it-i-am-going-to-search-all-tables-all-collumns/
Tenho uma solução de um tempo atrás que continuei aprimorando. Também pesquisa em colunas XML se for solicitado, ou pesquisa valores inteiros se fornecer uma string apenas de números inteiros.
fonte
Encontrei uma solução bastante robusta em https://gallery.technet.microsoft.com/scriptcenter/c0c57332-8624-48c0-b4c3-5b31fe641c58 , que achei que valeria a pena ser destacada. Ele pesquisa colunas desses tipos: varchar, char, nvarchar, nchar, text. Ele funciona muito bem e oferece suporte a pesquisas de tabelas específicas, bem como a vários termos de pesquisa.
fonte
Há um bom script disponível em http://www.reddyss.com/SQLDownloads.aspx
Para poder usá-lo em qualquer banco de dados, você pode criá-lo como em: http://nickstips.wordpress.com/2010/10/18/sql-making-a-stored-procedure-available-to-all-databases/
Não tenho certeza se existe outra maneira.
Para usá-lo, use algo assim:
fonte
Depois de tentar a solução de @regeter e ver que ela não resolveu meu problema quando estava procurando por uma chave estrangeira / primária para ver todas as tabelas / colunas onde ela existe, não funcionou. Depois de ler como ele falhou para outro que tentou usar um identificador exclusivo, fiz as modificações e aqui está o resultado atualizado: (funciona com int e guids ... você verá como estender facilmente)
fonte