[firebase-br] Delete com INNER JOIN
Tecnobyte Informática
temp2 em tecnobyte.com.br
Qui Maio 31 08:29:04 -03 2012
Olá Fausto, bom dia
Cada desenvolvedor tem suas preferências e costumes, mas se eu fosse você
não criaria stored procedure para algo simples como este. Eu geralmente crio
stored procedure somente quando sua criação resultar em ganho significativo,
seja em performance ou praticidade. Mas no caso deste DELECT com EXISTS, uma
stored procedure não faria muita diferença no resultado.
O lado ruim de se criar muitas stored procedures (especialmente quando
desnecessárias) é que cria-se muitas dependências entre os objetos no banco
de dados e quando tiver que alterar alguma coisa na estrutura da tabela terá
que sair removendo estas dependências todas para somente depois conseguir
alterar o que de fato deseja. Quanto menos dependências, mais fácil será
para alterar a estrutura de uma tabela.
Atenciosamente.
Daniel P. Guimarães
Tecnobyte Informática
www.tecnobyte.com.br
-----Mensagem Original-----
From: Fausto
Sent: Thursday, May 31, 2012 6:22 AM
To: lista em firebase.com.br
Subject: Re: [firebase-br] Delete com INNER JOIN
Beleza..
Deu certo aqui, mas estou pensando em passar isso para uma SP
Em 30/05/2012 09:31, Tecnobyte Informática escreveu:
> Veja se isto resolve sem problema:
>
> DELETE FROM PEDIDOS P
> WHERE P.EMIPEDIDO <= :DATAFIM AND
> EXISTS(SELECT * FROM COMISSOES C
> WHERE C.NRPEDIDO = P.NRPEDIDO AND C.BAIXADA IS NOT NULL)
>
>
> Atenciosamente.
>
> Daniel P. Guimarães
> Tecnobyte Informática
> www.tecnobyte.com.br
>
> -----Mensagem Original----- From: Fausto
> Sent: Tuesday, May 29, 2012 7:22 PM
> To: lista em firebase.com.br
> Subject: [firebase-br] Delete com INNER JOIN
>
> Pessoal..
> Preciso executar uma rotina de fechamento anual em uma tabela de
> pedidos, esta rotina se dá da seguinte forma:
> Devo excluir todos os pedidos cuja data de emissão forem menor ou igual
> a que eu informar, mas que não tenha nenhuma comissão em aberto.
> Estou tentando algo do tipo
> *DELETE FROM PEDIDOS P
> INNER JOIN COMISSOES C ON (C.NRPEDIDO = P.NRPEDIDO)
> WHERE P.EMIPEDIDO <= :DATAFIM
> AND C.BAIXADA IS NOT NULL
>
> *Existe alguma forma de fazer isso ou teria que ser via SP?
> Grato
>
--
Fausto Alves
Skype:faustoalves
msn:faustoalves em com4.com.br
Franca-SP
Enviado pelo Mozilla Thunderbird
http://br.mozdev.org/thunderbird
Mais detalhes sobre a lista de discussão lista