Consiglio per una stored p: altro caso

domenica 02 settembre 2007 - 19.47

_J_ Profilo | Senior Member

salve ragazzi,
stavolta propongo un caso leggermente diverso dal quello visto nell'ultimo post:
come mi devo comportare nel caso di più istruzioni sql tra if ed else? inutile dire che le parentesi non me le accetta...

stavolta devo trattare il caso di una famiglia che deve cambiare casa, e quindi nella sp devo usare più tabelle...
la situazione è questa:
cittadino<---------abita_in-------->domicilio

per quel che riguarda le chiavi

cod_persona (PK)<------abita_in(cod_via_num_civico(entrambe fk verso 'domicilio'))----->domicilio(cod_via, num_civico(entrambe pk))

ALTER PROCEDURE dbo.mod_spostam_famiglia_cambio_casa_cursori ( @nf int, @flag varchar(1), @via_nuova int, @num_nuovo varchar(4), @scala varchar(1), @piano int, @interno int, @data_v datetime ) AS declare @num_comp as integer set @num_comp='' select @num_comp=(select count(*) from ruolo_in_nf_o_conviv where cod_nucleo_familiare=@nf) /+devo conoscere il cod famiglia, per spostarli tutti assieme*/ declare @variabile integer /*variabile per il cursore...*/ declare cursore cursor local for select cod_persona from ruolo_in_nf_o_conviv where cod_nucleo_familiare=@nf /*prende i membri di una certa famiglia*/ open cursore fetch next from cursore into @variabile while @@fetch_status=0 begin if @num_comp !=0/*se ho componenti nel nf*/ update abita_in /*primo update, per la tabella delle foreign key*/ set data_variaz_domicilio=@data_v where cod_persona in (select cod_persona from ruolo_in_nf_o_conviv where cod_nucleo_familiare=@nf) update domicilio /*secondo update, per la tabella con le primary key*/ set cod_via=@via_nuova, num_civico=@num_nuovo, flag_domicilio_corrente=@flag, n_scala=@scala, n_piano=@piano, n_interno=@interno where cod_persona in (select cod_persona from ruolo_in_nf_o_conviv where cod_nucleo_familiare=@nf) /*per tutti i componenti cambio domicilio: casa destinaz esistente*/ else print 'ciao' /*mi dà errore qui... */ fetch next from cursore into @variabile end close cursore deallocate cursore RETURN

grazie a chi mi aiutrà!
_J_

"Chi fa domande rischia di sembrare stupido,
chi non ne fa rischia di restare stupido..."

"Conosco me stesso? No, non parlo con gli estranei..."

micto27 Profilo | Senior Member

>salve ragazzi,
>stavolta propongo un caso leggermente diverso dal quello visto
>nell'ultimo post:
>come mi devo comportare nel caso di più istruzioni sql tra if
>ed else? inutile dire che le parentesi non me le accetta...
>

I blocchi di istruzioni vanno compresi fra "begin" e "end":

if condizione begin ........... ........... end else begin ........... ........... end

Ciao, Michele

_J_ Profilo | Senior Member

ok, perfetto anche adesso
grazie ancora!
_J_

"Chi fa domande rischia di sembrare stupido,
chi non ne fa rischia di restare stupido..."

"Conosco me stesso? No, non parlo con gli estranei..."
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5