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

Trigger actualizar tabla desde otra

Estas en el tema de Trigger actualizar tabla desde otra en el foro de SQL Server en Foros del Web. Hola, tengo las siguientes tablas: Pedidos: Uid, npedido, unidades, etc.. Pedidos_Tienda: uidpedido, uidtienda, unidades. Ambas tablas están relacionadas con una clave foránea. Lo que necesito ...
  #1 (permalink)  
Antiguo 14/01/2013, 06:57
 
Fecha de Ingreso: julio-2010
Mensajes: 93
Antigüedad: 13 años, 9 meses
Puntos: 0
Trigger actualizar tabla desde otra

Hola,

tengo las siguientes tablas:

Pedidos: Uid, npedido, unidades, etc..
Pedidos_Tienda: uidpedido, uidtienda, unidades.

Ambas tablas están relacionadas con una clave foránea.

Lo que necesito es crear un trigger donde se actualice la tabla de Pedidos al insertar una nueva fila en la tabla Pedidos_Tienda.

Gracias y un saludo,

Eloy
  #2 (permalink)  
Antiguo 14/01/2013, 07:23
Avatar de Malenko
Moderador
 
Fecha de Ingreso: enero-2008
Mensajes: 5.323
Antigüedad: 16 años, 3 meses
Puntos: 606
Respuesta: Trigger actualizar tabla desde otra

Es decir, que únicamente has de crear un trigger y dentro del trigger realizar un insert en la tabla Pedidos_tienda.
__________________
Aviso: No se resuelven dudas por MP!
  #3 (permalink)  
Antiguo 14/01/2013, 08:11
 
Fecha de Ingreso: julio-2010
Mensajes: 93
Antigüedad: 13 años, 9 meses
Puntos: 0
Respuesta: Trigger actualizar tabla desde otra

Claro, lo que necesito es que cada vez que haya un insert en la tabla Pedidos_Tienda, se ejecute un trigger que me actualice la tabla de Pedidos restandole las unidades que se han cargado en la tabla Pedidos_Tienda.

Las dos tablas están relacionadas por el id de la tabla de Pedidos.

Por ahora tengo esto:

ALTER trigger [dbo].[RestaUnidades]
on [dbo].[Pedidos_Tiendas]
for insert
as
begin
update Pedidos
set Unidades = Unidades - (select sum(PT.Unidades)
from Pedidos_Tiendas PT
inner join Pedidos P
on PT.Uidpedido = P.Uid
where PT.Uidpedido = P.Uid)
end

Un saludo,
  #4 (permalink)  
Antiguo 14/01/2013, 10:28
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: Trigger actualizar tabla desde otra

Porque no actualizar tu tabla PEDIDOS, cuando insertes en PEDIDOS_TIENDA?, mi duda es, ¿para que hacerlo con un trigger?
__________________
MCTS Isaias Islas
  #5 (permalink)  
Antiguo 14/01/2013, 11:03
 
Fecha de Ingreso: julio-2010
Mensajes: 93
Antigüedad: 13 años, 9 meses
Puntos: 0
Respuesta: Trigger actualizar tabla desde otra

Porque necesito que sea automático cada vez que se actualice la tabla Pedidos_tienda.

como puedo conseguir que funcione. Ahora mismo me actualiza todas las filas, y solo quiero que actualice la que coincide con la de la tabla Pedidos.

Un saludo,
  #6 (permalink)  
Antiguo 14/01/2013, 11:33
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Trigger actualizar tabla desde otra

utiliza el id de la que se acaba de actualizar, y como obtengo esto? busca un poco en internet, pero como se que no lo vas a hacer usa los valores que estan en las tablas deleted o inserted ;) (para mas referencia....preguntale a google)
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #7 (permalink)  
Antiguo 14/01/2013, 12: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: Trigger actualizar tabla desde otra

Por eso mi pregunta, si no hace referencia a DELETED e INSERTED, para que lo quiere hacer en un TRIGGER.

Supongo yo que debe tener un SP que actualiza PEDIDOS_TIENDA, pues que ese mismo SP, actualice PEDIDOS, ¿cierto?
__________________
MCTS Isaias Islas
  #8 (permalink)  
Antiguo 15/01/2013, 06:14
 
Fecha de Ingreso: julio-2010
Mensajes: 93
Antigüedad: 13 años, 9 meses
Puntos: 0
Respuesta: Trigger actualizar tabla desde otra

No tengo un SP, simplemente añado los datos desde una aplicación que he desarrollado y necesito que al añadir un nuevo pedido y asignarlo a varias tiendas, me reste las unidades asignadas de mi tabla de pedidos mediante un trigger.

Gracias.
  #9 (permalink)  
Antiguo 15/01/2013, 06:38
Avatar de Malenko
Moderador
 
Fecha de Ingreso: enero-2008
Mensajes: 5.323
Antigüedad: 16 años, 3 meses
Puntos: 606
Respuesta: Trigger actualizar tabla desde otra

Cita:
Iniciado por eloy_ameneiros Ver Mensaje
No tengo un SP, simplemente añado los datos desde una aplicación que he desarrollado y necesito que al añadir un nuevo pedido y asignarlo a varias tiendas, me reste las unidades asignadas de mi tabla de pedidos mediante un trigger.

Gracias.
Lo que te está proponiendo iislas es que a la vez que añades el pedido, también hagas el update para restar las unidades. Es decir, que no utilices ningun trigger y que lances las dos instrucciones desde tu aplicación o atacando a un SP que realice y oculte toda la logica de la gestión del inventario.
__________________
Aviso: No se resuelven dudas por MP!
  #10 (permalink)  
Antiguo 15/01/2013, 17:07
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: Trigger actualizar tabla desde otra

Exactamente y que NO envies codigo T-SQL (update, delete, inserte) desde tu aplicativo, lo hagas mediante ejecucion de STORE PROCEDURE.
__________________
MCTS Isaias Islas

Etiquetas: tabla, trigger
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 12:12.