Dado um número, como descubro em que tabela e coluna ele pode ser encontrado?
Não me importo se é rápido, só precisa funcionar.
sql-server
Allain Lalonde
fonte
fonte
Respostas:
Isso pode ajudá-lo . - de Narayana Vyas. Ele pesquisa todas as colunas de todas as tabelas em um determinado banco de dados. Eu o usei antes e funciona.
Este é o procedimento armazenado no link acima - a única alteração que fiz foi substituir a tabela temporária por uma variável de tabela, para que você não precise se lembrar de removê-la todas as vezes.
fonte
Se você precisar executar essa pesquisa apenas uma vez, provavelmente poderá usar qualquer um dos scripts já mostrados em outras respostas. Mas, caso contrário, eu recomendaria usar o ApexSQL Search para isso. É um complemento gratuito para SSMS e realmente me poupou muito tempo.
Antes de executar qualquer um dos scripts, você deve personalizá-lo com base no tipo de dados que deseja pesquisar. Se você souber que está pesquisando a coluna datetime, não há necessidade de pesquisar nas colunas nvarchar. Isso irá acelerar todas as consultas acima.
fonte
Com base na resposta de bnkdev, modifiquei o código de Narayana para pesquisar todas as colunas, inclusive as numéricas.
O processo será mais lento, mas esta versão encontra todas as correspondências, não apenas as encontradas nas colunas de texto.
Eu não posso agradecer esse cara o suficiente. Salvou-me dias de pesquisa manualmente!
fonte
Esta é a minha opinião independente sobre essa questão que uso no meu próprio trabalho. Ele funciona no SQL2000 e superior, permite caracteres curinga, filtragem de colunas e pesquisará a maioria dos tipos de dados normais.
Uma descrição de pseudo-código pode ser
select * from * where any like 'foo'
Não o coloco na forma proc, pois não quero mantê-lo em centenas de bancos de dados e, de qualquer maneira, é realmente para trabalho ad-hoc. Por favor, sinta-se livre para comentar sobre correções de bugs.
fonte
Otimizei a resposta de Allain Lalonde ( https://stackoverflow.com/a/436676/412368 ). Valores numéricos ainda são suportados. Deve ser aproximadamente 4-5 vezes mais rápido (1:03 vs 4:30), testado em um desktop com um banco de dados de 7 GB. http://developer.azurewebsites.net/2015/01/mssql-searchalltables/
fonte
É a minha maneira de resolver esta questão. Testado em SQLServer2008R2
fonte
Obrigado pelo script realmente útil.
Pode ser necessário adicionar a seguinte modificação ao código se suas tabelas tiverem campos não conversíveis:
Chris
fonte
Eu tenho uma solução de um tempo atrás que eu continuava melhorando. Também procura nas colunas XML, se for solicitado, ou procura valores inteiros se fornecer uma sequência apenas de número inteiro.
Fonte: http://fullparam.wordpress.com/2012/09/07/fck-it-i-am-going-to-search-all-tables-all-collumns/
fonte
Eu escrevi uma vez uma ferramenta para fazer exatamente isso:
a7 SqlTools
É gratuito e de código aberto:
link do github
fonte
Aqui, solução muito doce e pequena:
==========================
fonte
Outra maneira usando JOIN e CURSOR:
fonte
Pode ser necessário criar um índice invertido para o seu banco de dados. É garantido que seja bastante rápido.
fonte
Suponha que, se você deseja obter toda a tabela com o nome, o nome de uma coluna contenha tempo de log no banco de dados MyDatabase abaixo seja o exemplo de código
fonte
Se você tem o phpMyAdmin instalado, use o Search recurso de .
Selecione seu DataBase.
Certifique-se de ter selecionado o DataBase, não uma tabela, caso contrário, você obterá uma caixa de diálogo de pesquisa completamente diferente.
fonte
fonte
Para fins de desenvolvimento, você pode apenas exportar os dados das tabelas necessárias para um único HTML e fazer uma pesquisa direta sobre eles.
fonte
As ferramentas do cliente de banco de dados (como DBeaver ou phpMyAdmin ) geralmente suportam meios de pesquisa de texto completo em todo o banco de dados.
fonte