Retroceder   Foros del Web > Programación para sitios web > Bases de Datos

Respuesta
 
Herramientas Desplegado
Antiguo 14-sep-2004, 14:36   #1 (permalink)
ToRu está en el buen camino
 
Fecha de Ingreso: febrero-2004
Ubicación: desde aqui
Mensajes: 64
Enviar un mensaje por ICQ a ToRu
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!
ToRu está desconectado   Responder Citando
Antiguo 14-sep-2004, 14:52   #2 (permalink)
Moderador
Mithrandir llegará a ser famoso muy prontoMithrandir llegará a ser famoso muy pronto
 
Avatar de Mithrandir
 
Fecha de Ingreso: abril-2003
Mensajes: 12.108
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
Mithrandir está desconectado   Responder Citando
Antiguo 15-sep-2004, 02:21   #3 (permalink)
ToRu está en el buen camino
 
Fecha de Ingreso: febrero-2004
Ubicación: desde aqui
Mensajes: 64
Enviar un mensaje por ICQ a ToRu
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
ToRu está desconectado   Responder Citando
Antiguo 15-sep-2004, 02:30   #4 (permalink)
peloteitor ha deshabilitado el karma
 
Avatar de peloteitor
 
Fecha de Ingreso: noviembre-2003
Ubicación: Barcelona (España)
Mensajes: 841
Enviar un mensaje por MSN a peloteitor
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
peloteitor está desconectado   Responder Citando
Antiguo 15-sep-2004, 02:51   #5 (permalink)
ToRu está en el buen camino
 
Fecha de Ingreso: febrero-2004
Ubicación: desde aqui
Mensajes: 64
Enviar un mensaje por ICQ a ToRu
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?
ToRu está desconectado   Responder Citando
Antiguo 15-sep-2004, 15:23   #6 (permalink)
Moderador
Mithrandir llegará a ser famoso muy prontoMithrandir llegará a ser famoso muy pronto
 
Avatar de Mithrandir
 
Fecha de Ingreso: abril-2003
Mensajes: 12.108
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
Mithrandir está desconectado   Responder Citando
Respuesta

No hay votos aún.


Herramientas
Desplegado

Normas de Publicación
No puedes crear nuevos temas
No puedes responder temas
No puedes subir archivos adjuntos
No puedes editar tus mensajes

BB code is Activado
Caritas están Activado
[IMG] está Activado
Código HTML está Desactivado


La Zona horaria es GMT -6. Ahora son las 08:50.


Message Board Statistics

LinkBacks Enabled by vBSEO 3.1.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93