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

Triggers (SQL server)

Estas en el tema de Triggers (SQL server) en el foro de Bases de Datos General en Foros del Web. Hola! Después de haber estado buscando por el foro sobre los triggers, sigo sin poder hacer un trigger que me permita una actualización en cascada ...
  #1 (permalink)  
Antiguo 14/09/2004, 14:36
 
Fecha de Ingreso: febrero-2004
Ubicación: desde aqui
Mensajes: 64
Antigüedad: 20 años, 9 meses
Puntos: 1
Pregunta Triggers (SQL server)

Hola!
Después de haber estado buscando por el foro sobre los triggers, sigo sin poder hacer un trigger que me permita una actualización en cascada en varias tablas
- Clientes
- Empleados
- Pedidos
- Compañia_envio
- Detalle_pedido
- Proveedores
- Productos
- Categoria

Lo que tengo que hacer, es que cuando realice una actualización en un campo, lo haga de forma automática en las otras tablas, pero no sé como relacionar una tabla con otra.
Gracias!
  #2 (permalink)  
Antiguo 14/09/2004, 14:52
Avatar de Mithrandir
Colaborador
 
Fecha de Ingreso: abril-2003
Mensajes: 12.106
Antigüedad: 21 años, 6 meses
Puntos: 25
Por que no nos muestras lo que tienes?

El chiste es usar la tabla INSERTED y de ahi obtener todo lo necesario para hacer el INSERT/UPDATE con algo como:

INSERT INTO tabla
SELECT campo1, ...
FROM INSERTED
__________________
"El hombre, en su orgullo, creó a Dios a su imagen y semejanza."
Friedrich Nietzsche
  #3 (permalink)  
Antiguo 15/09/2004, 02:21
 
Fecha de Ingreso: febrero-2004
Ubicación: desde aqui
Mensajes: 64
Antigüedad: 20 años, 9 meses
Puntos: 1
hola, weno parece fácil , pero por más que he buscado información en internet, no se ni como empezar el trigger, ni donde poner lo de from inserted, ni nada, sorry
  #4 (permalink)  
Antiguo 15/09/2004, 02:30
Avatar de peloteitor  
Fecha de Ingreso: noviembre-2003
Ubicación: Madrid
Mensajes: 849
Antigüedad: 21 años
Puntos: 1
Mira en la ayuda
__________________
El sexo sin amor es una experiencia vacía. Pero como experiencia vacía es una de las mejores.

Woody Allen
  #5 (permalink)  
Antiguo 15/09/2004, 02:51
 
Fecha de Ingreso: febrero-2004
Ubicación: desde aqui
Mensajes: 64
Antigüedad: 20 años, 9 meses
Puntos: 1
weno ya tengo hecho algo, no sé si estará bien o mal:

Código:
create trigger actualizacion_cascada
on Clientes
for update as
if update(Cod_cliente)
begin
           update Pedidos
           set Cod_cliente = inserted.Cod_cliente
           from Pedidos, deleted, inserted
           where deleted.Cod_cliente = Pedidos.Cod_cliente
end
Es lo único que se me ocurre como actualizacion en cascada, alguna idea?
  #6 (permalink)  
Antiguo 15/09/2004, 15:23
Avatar de Mithrandir
Colaborador
 
Fecha de Ingreso: abril-2003
Mensajes: 12.106
Antigüedad: 21 años, 6 meses
Puntos: 25
En efecto, asi es como se debe hacer.

Unicamente yo cambiaría el
Código:
from Pedidos, deleted, inserted
por un
Código:
from pedidos INNER JOIN inserted
Deleted no lo necesitas, y usar inner joins es mas eficiente que usar producto cartesiano (la coma)
__________________
"El hombre, en su orgullo, creó a Dios a su imagen y semejanza."
Friedrich Nietzsche
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 14:40.