Este Trigger

19/01/2004 - 22:01 por Yovanny Rojas | Informe spam
Hola amigos:

Este trigger guarda el numero de semana en el maestro desde el detalle, pero
mi problema es que solo quiere que guarde la semana mas vieja en el maestro
no importa las cantidades que se entre solo quiero guardar la mas vieja es
decir la semana primera.aunque esta se entre de ultimo,

gracias a todos

CREATE trigger semana on dbo.Produccion
for insert,delete,update
as
begin
select codigo as cod, semana as sem
into #i
from inserted

update maestro Set semana = sem
from #i Nuevas inner join detalle
on maestro.codigo=nuevas.cod


insert into maestro (codigo,semana)
select nuevas.cod, sem
from #i Nuevas left join maestro
on Nuevas.cod=maestro.codigo
where maestro.codigo is null


select codigo as cod, semana as sem
into #d
from deleted

update maestro Set semana = sem
from #d viejos inner join detalle
on maestro.codigo=viejos.cod

end
 

Leer las respuestas

#1 Miguel Egea
19/01/2004 - 20:08 | Informe spam
quizá si cambias esto
select codigo as cod, semana as sem
into #i
from inserted

por esto
select codigo as cod, max(semana) as sem
into #i
from inserted
group by codigo

lo soluciones. (no sé que lógica deberías seguir en el caso de que algo se
borre...)


=Miguel Egea
http://www.portalsql.com
Microsoft SQL-SERVER MVP.
Brigada Anti-Cursores
Aviso de Seguridad
http://www.microsoft.com/spain/tech...9-USER.asp
==

"Yovanny Rojas" escribió en el mensaje
news:%

Hola amigos:

Este trigger guarda el numero de semana en el maestro desde el detalle,


pero
mi problema es que solo quiere que guarde la semana mas vieja en el


maestro
no importa las cantidades que se entre solo quiero guardar la mas vieja es
decir la semana primera.aunque esta se entre de ultimo,

gracias a todos

CREATE trigger semana on dbo.Produccion
for insert,delete,update
as
begin
select codigo as cod, semana as sem
into #i
from inserted

update maestro Set semana = sem
from #i Nuevas inner join detalle
on maestro.codigo=nuevas.cod


insert into maestro (codigo,semana)
select nuevas.cod, sem
from #i Nuevas left join maestro
on Nuevas.cod=maestro.codigo
where maestro.codigo is null


select codigo as cod, semana as sem
into #d
from deleted

update maestro Set semana = sem
from #d viejos inner join detalle
on maestro.codigo=viejos.cod

end




Preguntas similares