MCDBA Brasil    
22:24:14

 
 
MCDBA Brasil: Forums
 
 


 
  www.mcdbabrasil.com.br :: Exibir tópico - Consulta SQL com WHERE definido pelo parametro
 FAQFAQ   PesquisarPesquisar   GruposGrupos   PerfilPerfil   Entrar e ver Mensagens ParticularesEntrar e ver Mensagens Particulares   LoginLogin 

Consulta SQL com WHERE definido pelo parametro

 
Novo Tópico   Responder Mensagem    www.mcdbabrasil.com.br - Índice do Fórum -> SQL Server 2008
Exibir mensagem anterior :: Exibir próxima mensagem  
Autor Mensagem
Rafaselic
Usuário
Usuário


Registrado em: Dec 02, 2008
Mensagens: 56
Localização: São Paulo /SP

MensagemEnviada: 13 Fev 2012 15:19    Assunto: Consulta SQL com WHERE definido pelo parametro Responder com Citação

Boa tarde, galera

To rachando a cabeça numa consulta e não consigo resolver.

Meu problema é que, quando a proc receber um parametro que não seja NULL, esta consulta deverá respeitar minhas condições e acrescentar uma linha no resultado, já que este parâmetro é chave de uma tabela.

Não estou conseguindo nem com reza. kkkk

Agradeço a ajuda.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
joliveira
PhD no assunto
PhD no assunto


Registrado em: Sep 12, 2005
Mensagens: 718
Localização: São José ods Campos/SP

MensagemEnviada: 14 Fev 2012 09:28    Assunto: Responder com Citação

Rafaselic

Voce precisa criar uma query dinamica e executa-la com sp_ e x e c u t e s q l. Não faça a besteira de usar na clausula W H E R E o teste da variável com valor NULO. Exemplos:

Dinamica
Código:

d e c l a re @sql n v a r c h a r (XXX)

--aqui voce começa  a aarmazenar o seu comando em uma variável
s e t @sql = 's e l e c t ......'
..
..
..
..

-- começando ou complementando o filtro, vc valida a sua variável
if @ v a r i a v e l is not null
 set @ sql = @sql + 'w h e r e campo = ' +@ variavel
  ou
 set @ sql = @ sql + 'a n d campo =' + @ variavel


-- depois de tudo pronto, voce executa a query armazenada em @ sql
e x e c s p_ e x e c u t e s q l @ sql



Maneira errada porém muitos fazem
Código:

w h e r e campo = @ variavel or @ variavel is n u l l
ou
a n d campo = @ variavel or @ variavel is n u l l


A 2a maneira ode causar parameter snifing por isso deve ser evitada.

Espero que isso o ajude.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular MSN Messenger
joliveira
PhD no assunto
PhD no assunto


Registrado em: Sep 12, 2005
Mensagens: 718
Localização: São José ods Campos/SP

MensagemEnviada: 14 Fev 2012 09:29    Assunto: Responder com Citação

Desculpe digitar os comandos sql seprados pois o site estava acusando erro
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular MSN Messenger
Mostrar os tópicos anteriores:   
Novo Tópico   Responder Mensagem    www.mcdbabrasil.com.br - Índice do Fórum -> SQL Server 2008 Todos os horários são GMT - 3 Hours
Página 1 de 1

 
Ir para:  
Enviar Mensagens Novas: Proibido.
Responder Tópicos Proibido
Editar Mensagens: Proibido.
Excluir Mensagens: Proibido.
Votar em Enquetes: Proibido.

Powered by phpBB 2.0.6 © 2001 phpBB Group
phpBB port v2.1 based on Tom Nitzschner's phpbb2.0.6 upgraded to phpBB 2.0.4 standalone was developed and tested by:
ArtificialIntel, ChatServ, mikem,
sixonetonoffun and Paul Laudanski (aka Zhen-Xjell).

Version 2.1 by Nuke Cops © 2003 http://www.nukecops.com

 
 


 
  Todas os logotipos e marcas registradas são de propriedade de seus respectivos donos.
Sistema de portais PHP-Nuke. Copyright © 2003. PHP-Nuke é um Software Livre liberado sob licença GNU/GPL.
Tempo para gerar esta página: 0.405 segundos