Skip Navigation Links
Novas Tecnologias
Ferramentas Adicionais
Ferramentas Adicionais


Dica No :
998
Assunto : SQL Server
Titulo: Pesquisar por uma string em todos os campos de uma tabela

Gostou do texto ? Vote e dê sua opinião! Pontuação atual :

Translate this page now :






Adicione aos Favoritos!
BlogBlogs Rec6 Linkk Ueba Technorati Delicious DiggIt! StumbleUpon


Eventualmente, para alguns tipos de aplicações, pode ser desejável fazer uma pesquisa por um valor texto em todas as colunas de uma tabela. Para isso essa procedue abaixo pode auxiliar :

CREATE PROCEDURE sp_FindStringInTable @stringToFind VARCHAR(100), @schema sysname, @table sysname
AS

DECLARE @sqlCommand VARCHAR(8000)
DECLARE @where VARCHAR(8000)
DECLARE @columnName sysname
DECLARE @cursor VARCHAR(8000)

BEGIN TRY
SET @sqlCommand = SELECT * FROM + @schema + . + @table + WHERE
SET @where =

SET @cursor = DECLARE col_cursor CURSOR FOR SELECT COLUMN_NAME
FROM + DB_NAME() + .INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_SCHEMA = + @schema +
AND TABLE_NAME = + @table +
AND DATA_TYPE IN (char,nchar,ntext,nvarchar,text,varchar)

EXEC (@cursor)

OPEN col_cursor
FETCH NEXT FROM col_cursor INTO @columnName

WHILE @@FETCH_STATUS = 0
BEGIN
IF @where <>
SET @where = @where + OR

SET @where = @where + + @columnName + LIKE + @stringToFind +
FETCH NEXT FROM col_cursor INTO @columnName
END

CLOSE col_cursor
DEALLOCATE col_cursor

SET @sqlCommand = @sqlCommand + @where
--PRINT @sqlCommand
EXEC (@sqlCommand)
END TRY
BEGIN CATCH
PRINT There was an error
IF CURSOR_STATUS(variable, col_cursor) <> -3
BEGIN
CLOSE col_cursor
DEALLOCATE col_cursor
END
END CATCH


A procedure usa um select em tabela de sistema para recuperar o nome das colunas da tabela que é recebida como parâmetro

É aberto um cursor com a lista de colunas da tabela recebida como parâmetro

Um laço no cursor monta uma clausula where para pesquisar em todas as colunas da tabela

O where e a instrução SQL são unidos e executados

Nome :
E-mail:
Comentarios :
 
 
Os Últimos Comentários
data: 10/21/2017 3:00:00 PM
nome: OUsaFVAuRToW
email: jimosa4ccf2@hotmail.com
comentário:
W5EWSl http://www.FyLitCl7Pf7ojQdDUOLQOuaxTXbj5iNG.com

data: 5/21/2017 10:55:00 AM
nome: SmzmKqOlHTMiCdc
email: jimos45812rt1@hotmail.com
comentário:
3BOU7N http://www.LnAJ7K8QSpkiStk3sLL0hQP6MO2wQ8gO.com

data: 5/18/2017 3:31:00 AM
nome: JFLASMOEqyJlKq
email: jimos45812rt1@hotmail.com
comentário:
HEUfHE http://www.LnAJ7K8QSpkiStk3sLL0hQP6MO2wQ8gO.com

data: 4/1/2017 7:17:00 PM
nome: UAssrFgrKMqXSZ
email: jimos4581rt1@hotmail.com
comentário:
uwbRoK http://www.LnAJ7K8QSpkiStk3sLL0hQP6MO2wQ8gO.com

data: 4/1/2017 7:48:00 AM
nome: aqGMUMHZBBkDQRZO
email: jimos4581rt1@hotmail.com
comentário:
YYKuLT http://www.LnAJ7K8QSpkiStk3sLL0hQP6MO2wQ8gO.com

 1  
Dicas
Dica do Dia
Receba Dicas Por Email
E-mail :  
 


 (help)
Aceito receber informativos do devASPNet, informações de eventos e treinamentos

Veja Quais Informativos Você Receberá

Pesquisar Dicas
Pesquisar Artigos, Dicas e Noticias

Banco de Dados
Algumas Entrevistas
Links Importantes

Búfalo Informática, Treinamento e Consultoria
R. Alvaro Alvim, 37/920 Centro - Cinelândia - Rio de Janeiro Cep: 20031-010
Tel : (21) 2262-1368 (21) 9240-5134 E-mail : Contato@bufaloinfo.com.br