[firebase-br] Procurar código disponível
paulosxs Yahoo!
paulosxs em yahoo.com.br
Ter Abr 24 19:57:19 -03 2007
"Luciano S Gularte" <lsgulart em terra.com.br> escreveu:
> Recentemente importei o cadastro de produtos de um cliente para meu
> banco de dados. Ao verficar os dados percebi que haviam vários "pulos" entre
> os códigos dos produtos.
> Pra aproveitar esses códigos, pensei em fazer uma StoredProcedure onde
> faria um for de 1 até o "Select Max(Codigo)+1", pesquisando se cada código
> encontrado está em uso, se não, ao achar o primeiro eu abortaria e
> retornaria o código encontrado, caso contrário a Procedure vai chegar no
> Max+1, ou seja, no próximo disponível. Sei que em determinados momentos,
> quando esta tabela estiver grande, eu possa ter problemas de performance,
> mas mesmo assim eu gostaria de fazer, pois essa Procedure pode me ajudar em
> outras partes do sistema.
> Alguém já fez isso? É possível? Tentei começar mas travei na parte do
> FOR dentro da Procedure.
--------
(...)
begin
select first 1 Codigo+1
from Produtos P
where not exists(select null from Produtos PP where
PP.Codigo=P.Codigo+1)
order by Codigo
into :CodigoLivre;
suspend;
end
--------
Isso ajuda?
Mais detalhes sobre a lista de discussão lista