Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

calcular valor con datos de la fila

Estas en el tema de calcular valor con datos de la fila en el foro de SQL Server en Foros del Web. hola a todo ya enteriormente habia iniciado un tema como este pero creo que fue borrado tal vez en esa ocasion no fui muy clara ...
  #1 (permalink)  
Antiguo 08/09/2009, 14:45
 
Fecha de Ingreso: mayo-2009
Mensajes: 76
Antigüedad: 15 años
Puntos: 0
calcular valor con datos de la fila

hola a todo ya enteriormente habia iniciado un tema como este pero creo que fue borrado tal vez en esa ocasion no fui muy clara veamos ahora si logro explicarme mejor.
Tengo una tabla prog_real con los siguientes campos
id_llenado
prog_mes
real_mes
porc_avan_mes
año
id_mes
todos los campos los proporciona el usuario menos el porc_avan_mes el cual debe ser calculado de la la siguinete manera
porc_avan_mes=(real_mes*100)/prog_mes
esto lo estoy haciendo con un trigger que se ejecuta despues de un insert o un update a alguno de los campos que generan este total
alter trigger totales
on prog_real
after insert, update
as
declare @prog_mes int,@real_mes int, @porc_avan_mes int, @id_llenado int
select @prog_mes=p.prog_mes,@real_mes=p.real_mes,@porc_av an_mes=((real_mes*100)/prog_mes)
from prog_real p
where id_llenado=@id_llenado
begin
insert into prog_real(porc_avan_mes) values(@porc_avan_mes)
--update prog_real set porc_avan_mes='@porc_avan_mes' where id_llenado='@id_llenado'
end
go es to si se crea pero a ala hora de ejecutarse muetra un error de superacion de nivel de anidamientos
esto con el insert
y si activo el update por el insert me muestra un error al convertir el id_llenado en varchar pero mi dato es entero esto no debe pasar alguien puede ayudarme a encontrar solucion o sugerirme otraalternativa
gracias de antemano.

Última edición por Solmar; 08/09/2009 a las 14:54
  #2 (permalink)  
Antiguo 08/09/2009, 15:25
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: calcular valor con datos de la fila

¿Porque en un Trigger?

Deberas hacerlo en el PROCEDIMIENTO ALMACENADO (store procedure) que hace el INSERT.

Ademas, en un trigger, deberias hacer mencion a la tabla temporal, INSERTED o UPDATED.
  #3 (permalink)  
Antiguo 09/09/2009, 08:09
 
Fecha de Ingreso: mayo-2009
Mensajes: 76
Antigüedad: 15 años
Puntos: 0
Respuesta: calcular valor con datos de la fila

hola gracias por la atencion prestada haber bueno lo que pasa es que es que primero hago el trigger por que segun yo esun poco mas facil solucionar deesta menera ya que el campo cambiara de valor si se hace una insercion o modificasion y con el procedimiento solo se ejecutaria en una inserccion, y si lo hago con un procedimiento segun yo seria casi la misma estructura, por otro lado mencionas una tabla temporal la caual yo no tengo esnecesario crearla? se como crearlas pero me podrias aopoyar mandandome un ejemplo mas a detalle gracias .
  #4 (permalink)  
Antiguo 09/09/2009, 08:50
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: calcular valor con datos de la fila

Si lee usted su ayuda en linea, se dara cuenta que los TRIGGERS crean en automatica las tablas INSERTED y UPDATED, por tanto, no necesita crearlas.

Cuando usted hace INSERCCIONES MASIVAS el trigger solo se ejecutar una sola vez, aunque se hayan modificado miles de registros.

Insisto, no creo que la mejor opcion sea un trigger y si un PROCEDIMIENTO ALMACENADO.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:14.