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

problema sobre otro trigger en sql server

Estas en el tema de problema sobre otro trigger en sql server en el foro de Bases de Datos General en Foros del Web. Tengo este trigger: CREATE TRIGGER tg_act_subtotal ON dbo.Numero_Linea after insert AS update Numero_linea set Numero_linea.subtotal=(articulos.precio*inserted.u nidades) from inserted,articulos where inserted.codigo_articulo=articulos.codigo_articulo El cual quiero que me ...
  #1 (permalink)  
Antiguo 09/03/2004, 19:35
Avatar de sowhat  
Fecha de Ingreso: mayo-2002
Ubicación: España, Valladolid
Mensajes: 152
Antigüedad: 22 años
Puntos: 0
problema sobre otro trigger en sql server

Tengo este trigger:

CREATE TRIGGER tg_act_subtotal ON dbo.Numero_Linea
after insert
AS
update Numero_linea
set Numero_linea.subtotal=(articulos.precio*inserted.u nidades)
from inserted,articulos
where inserted.codigo_articulo=articulos.codigo_articulo


El cual quiero que me calcule el subtotal que son las unidades por el precio, en principio todo funciona bien inserto una linea y me lo calcula bien, el problema viene al salir de la tabla y volver a entrar, en la columna subtotal aparece el valor repetido en todas las filas es decir en vez de tener cada linea su valor subtotal tienen todas la misma que coincide con la ultima.

Otra preguntilla en un trigger podria poner una expresion de este tipo?

CREATE TRIGGER tg_act_subtotal ON dbo.Numero_Linea
after insert
AS
update Numero_linea
set Numero_linea.subtotal=numero_linea.subtotal+5
from inserted

ES decir al actualizaar un valor sumarle su valor como si se tratara de una variable.

Por último si conocen algun faq sobre los triggers o cualkier sitio que hablen sobre ellos me vendria bastante bien pq tengo que hacer unos cuantos para mi proyecto.
Gracias!
  #2 (permalink)  
Antiguo 10/03/2004, 02:40
 
Fecha de Ingreso: abril-2003
Ubicación: Madrid
Mensajes: 707
Antigüedad: 21 años
Puntos: 0
Para que el primer trigger haga lo que necesitas, debes filtrar la fila que quieres actualizar.

Debes tener una clave primaria para la tabla Numero_linea, supongamos IdLinea, entonces tu select quedaría así:

CREATE TRIGGER tg_act_subtotal ON dbo.Numero_Linea
after insert
AS
update Numero_linea
set Numero_linea.subtotal=(articulos.precio*inserted.u nidades)
from inserted,articulos
where inserted.codigo_articulo=articulos.codigo_articulo AND Numro_linea.IdLinea = inserted.IdLinea

Respecto a lo segundo, sí se puede pero para actualizar la tabla debe formar parte del FROM, tal y como tienes en el primer trigger

Un saludo
  #3 (permalink)  
Antiguo 10/03/2004, 14:55
Avatar de sowhat  
Fecha de Ingreso: mayo-2002
Ubicación: España, Valladolid
Mensajes: 152
Antigüedad: 22 años
Puntos: 0
Aja ya funciona de maravilla, muchas gracias :D
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 21:21.