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..."