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

Trigger para borrado en cascada

Estas en el tema de Trigger para borrado en cascada en el foro de SQL Server en Foros del Web. Buenas tardes Estoy estudiando la unidad de triggers, en ella me proponen un ejercicio en el que tengo que crear un trigger que borre en ...
  #1 (permalink)  
Antiguo 17/02/2012, 11:39
 
Fecha de Ingreso: febrero-2012
Mensajes: 7
Antigüedad: 12 años, 9 meses
Puntos: 0
Pregunta Trigger para borrado en cascada

Buenas tardes

Estoy estudiando la unidad de triggers, en ella me proponen un ejercicio en el que tengo que crear un trigger que borre en cascada sobre la tabla relacionada, cuando borre un registro de una tabla debe también borrar el registro de la tabla que comparte la clave foranea, es decir eliminar el registro de otras tablas donde aparece por ejemplo :
el cod_ciudad en la tabla ciudades de la BD países
este cod_ciudad aparece también en la tabla lugares de la misma BD.

espero haberme explicado con claridad, estoy seguro que los maestros en este tema podrán echarme una mano.
de antemano muchas gracias
  #2 (permalink)  
Antiguo 17/02/2012, 11:43
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 18 años, 3 meses
Puntos: 774
Respuesta: Trigger para borrado en cascada

checate esta liga:

http://support.microsoft.com/kb/142480

Saludos!
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #3 (permalink)  
Antiguo 17/02/2012, 12:30
 
Fecha de Ingreso: febrero-2012
Mensajes: 7
Antigüedad: 12 años, 9 meses
Puntos: 0
Respuesta: Trigger para borrado en cascada

Ya me he leido el artículo pero no me ha aclarado del todo mis dudas, me gustaria si pudiera ser, que algúno que controla del tema me diera una orientación con la inclusión de un pequeño ejemplo en cuanto a la sin¡taxis correcta.
Un saludo y gracias
  #4 (permalink)  
Antiguo 17/02/2012, 14:08
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 18 años, 3 meses
Puntos: 774
Respuesta: Trigger para borrado en cascada

Código SQL:
Ver original
  1. CREATE TRIGGER DelCascadeTrig
  2.   ON (nombre_tabla)
  3.   FOR DELETE
  4. AS
  5.   DELETE tabla a borrar en cascada
  6.     FROM tabla a borrar en cascada, DELETE(esta tabla es donde esta el id que vas a borrar)
  7.     WHERE tabla a borrar.id = deleted.id (deleted guarda la informacion del campo registro que eliminas en este caso necesitamos el id)

Que es lo que no entiendes???
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #5 (permalink)  
Antiguo 17/02/2012, 18:26
 
Fecha de Ingreso: febrero-2012
Mensajes: 7
Antigüedad: 12 años, 9 meses
Puntos: 0
De acuerdo Respuesta: Trigger para borrado en cascada

Gracias tio, al final he podido resolverlo.
ha quedado asi.
CREATE TRIGGER del_(tabla1)
ON (tabla)
FOR DELETE
AS
DELETE T = Esta es la tabla relacionada con la tabla en la que se realiza la acción de borrado
FROM tabla2 AS T INNER JOIN Deleted AS D
ON T.cod_xxx=D.cod_xxx

Un saludo
  #6 (permalink)  
Antiguo 17/02/2012, 19:42
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 17 años, 4 meses
Puntos: 180
Respuesta: Trigger para borrado en cascada

¿Y no es mas factible activar DELETE ON CASCADE?
__________________
MCTS Isaias Islas
  #7 (permalink)  
Antiguo 17/02/2012, 21:40
Avatar de matanga  
Fecha de Ingreso: octubre-2007
Ubicación: España
Mensajes: 1.091
Antigüedad: 17 años
Puntos: 85
Respuesta: Trigger para borrado en cascada

Cita:
Iniciado por iislas Ver Mensaje
¿Y no es mas factible activar DELETE ON CASCADE?
100% de acuerdo, luisespe2002 la integridad referencial se puede implementar de dos maneras, Declarativa (primary key / foreign key y opciones de cascada) o Procedural (triggers, procedimientos almacenados, código en la aplicación). El tipo procedural es útil en casos como, validar reglas antes de modificar datos, usuarios sin privilegios sobre las tablas que solo pueden modificar datos a través de un procedimiento o bases de datos que no soportan foreign key y/o las opciones de cascada, si no tienes estos requerimientos, lo normal es utilizar la integridad declarativa.

Saludos

Etiquetas: borrado, cascada, registro, 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 04:06.