Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

valtinho2005

busca geral no banco de dados

Recommended Posts

Boa noite,

 

Queria a ajuda de vocês. Tenho um banco de dados com mais de 500 tabelas. Nela tenho um dado gravado em uma tabela. Ou seja, sei o que está gravado, mas não sei qual tabela, nem coluna.

 

Existe algum query para fazer essa procura? sabendo a tabela e coluna, sei procurar com o LIKE, mas sem saber tabela e coluna, nao tenho a minima ideia.

 

Obrigado a todos antecipadamente!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Foi a semana da coluna perdida ? :)

 

Não, não sei fazer em Sql Server ...

Deve ter sido.

 

Vou postar o código, mas CUIDADO COM PERFORMANCE.

Eu o utilizo somente em casos extremos.

 

declare @idtabela int, @tabela varchar(max), @coluna varchar(max), @valorProcurado varchar(max) --Coloque aqui a palavra ou expressão que deseja procurarset @valorProcurado = '41936212000596'  if OBJECT_ID('tempdb..#tmpFindString') is not nulldrop table #tmpFindString create table #tmpFindString (table_name varchar(255), string varchar(255)) DECLARE db_cursor CURSOR FOR  select id from sys.sysobjects where xtype = 'u'OPEN db_cursor   FETCH NEXT FROM db_cursor INTO @idtabela WHILE @@FETCH_STATUS = 0   BEGIN    DECLARE db_cursorColunas CURSOR FOR  select a.name as tabela, b.name as coluna from sys.sysobjects ainner joinsys.syscolumns bon a.id = b.id where /*b.xtype in (167,175,231,239) and*/ a.xtype = 'u'and a.id = @idtabela/*167 varchar175 char231 nvarchar239 nchar*/OPEN db_cursorColunas   FETCH NEXT FROM db_cursorColunas INTO @tabela, @coluna WHILE @@FETCH_STATUS = 0   BEGIN   exec('insert #tmpFindStringselect '''  + @tabela + ''', string = '''+@valorProcurado+'''from ' + @tabela + ' where ['+@coluna+'] like ''%'+@valorProcurado+'%''')    FETCH NEXT FROM db_cursorColunas INTO @tabela, @coluna END    CLOSE db_cursorColunas   DEALLOCATE db_cursorColunas     FETCH NEXT FROM db_cursor INTO @idtabela END    CLOSE db_cursor   DEALLOCATE db_cursor    select distinct * from #tmpFindString
Em breve devo postar outros meios de buscas no meu blog.
[]´s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tipo da busca que nem dá para falar em performance.

 

Algo como na mudança tenho 300 caixas e sei que o abridor de latas está numa delas mas não sei em qual.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tipo da busca que nem dá para falar em performance.

 

Algo como na mudança tenho 300 caixas e sei que o abridor de latas está numa delas mas não sei em qual.

Nem pode-se considerar esta hipótese.

Utilizo Cursor, restrição por tipo. Se tentar monitorar, memoria estoura, leitura em disco vai pro teto do servidor, fora os ponteiros do banco que ficam perdidos.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.