Skip Navigation Links
Novas Tecnologias
Ferramentas Adicionais
Ferramentas Adicionais


Dica No :
1101
Assunto : SQL Server
Titulo: Evitando concatenações em stored procedures

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



Todos sabem que gerar instruções SQL com concatenação de strings é a melhor receita para prejudicar a performance de stored procedures, prejudicando os planos de execução pré-compilados.

Algumas situações, porém, parecem exigir esse tipo de abordagem. Porém apenas parecem. Veja o exemplo desta procedure abaixo, utilizando concatenação de strings para criar um parâmetro opcional na query :

create procedure Clientes
@country varchar(30)=null
as

declare @sql varchar(1000)

select @sql='select customerid,companyname, country from customers'

if @country is not null
begin
select @sql=@sql + ' where country=''' + @country + ''''
end

Execute(@sql)


Com apenas pequenos truques de lógica, podemos eliminar a concatenação de strings :


create procedure Clientes
@country varchar(30)=null
as

select customerid, companyname, country from customers
where @country is null or country=@country


O truque utilizado no where terá o mesmo efeito que o parâmetro opcional, pois quando o parâmetro não estiver presente todos os registros serão trazidos.

Com isso temos uma procedure muito mais otimizada e legível.

Nome :
E-mail:
Comentarios :
 
 
Os Últimos Comentários
Nenhum comentário foi realizado ainda. Seja o primeiro !
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