Trigger On Delete revisar otra tabla antes de borrar registros.

08/09/2007 - 23:13 por Cristiancito | Informe spam
Estimados:

Soy nuevo en el uso de Trigger y Procedimientos Almacenados y
quisiera solicitar ayuda en lo siguiente:
Necesito crear un Trigger que al modificar una columna de una tabla
verifique primero que no existan registros asociados en otra tabla de
lo contrario no se pueda eliminar el registro. Comprendo que debo
hacerlo disparando el evento Delete de la tabla origen y antes de
borrar (before), se tambien realizar la consulta para verificar que no
existan registros asociados pero no se que instrucción me permite
impedir el borrado de la tabla.

Podria solucionar el problema con una clave foranea pero no me es lo
mas recomendable porque una y otra tabla no tienen una relación
necesariamente de maestro detalle, mas bien corresponden a información
relacionada.

Desde ya muchas gracias.

PD: En realidad trabajo con una bd en SQL Anywhere pero por lo que
estuve viendo la forma de trabajar es muy similar a SQLServer.

Atte.

Cristián Muñoz Tello.
SNSI.

Preguntas similare

Leer las respuestas

#1 principiante
09/09/2007 - 00:16 | Informe spam
Yo creo que primero debes preferir y agotar las posibilidades de usar claves
foráneas porque éstas existen precisamente para ese tipo de relaciones de
integridad.

De todos modos, si aun deseas hacerlo por triggers puedes impedir el borrado
simplemente luego de verificar la condición restrictiva, simulando un error
a través de la instrucción RaisError().

Jose TH


"Cristiancito" escribió en el mensaje
news:
Estimados:

Soy nuevo en el uso de Trigger y Procedimientos Almacenados y
quisiera solicitar ayuda en lo siguiente:
Necesito crear un Trigger que al modificar una columna de una tabla
verifique primero que no existan registros asociados en otra tabla de
lo contrario no se pueda eliminar el registro. Comprendo que debo
hacerlo disparando el evento Delete de la tabla origen y antes de
borrar (before), se tambien realizar la consulta para verificar que no
existan registros asociados pero no se que instrucción me permite
impedir el borrado de la tabla.

Podria solucionar el problema con una clave foranea pero no me es lo
mas recomendable porque una y otra tabla no tienen una relación
necesariamente de maestro detalle, mas bien corresponden a información
relacionada.

Desde ya muchas gracias.

PD: En realidad trabajo con una bd en SQL Anywhere pero por lo que
estuve viendo la forma de trabajar es muy similar a SQLServer.

Atte.

Cristián Muñoz Tello.
SNSI.
Respuesta Responder a este mensaje
#2 Cristiancito
09/09/2007 - 16:44 | Informe spam
Muchas Gracias. Opté por provocar un Error y me funcionó perfecto.

Atte.

Cristián Patricio Muñoz Tello.
Respuesta Responder a este mensaje
#3 aprendiendo-net
26/04/2011 - 16:29 | Informe spam
Cristiancito escribió el 08/09/2007 23:13 :
Estimados:

Soy nuevo en el uso de Trigger y Procedimientos Almacenados y
quisiera solicitar ayuda en lo siguiente:
Necesito crear un Trigger que al modificar una columna de una tabla
verifique primero que no existan registros asociados en otra tabla de
lo contrario no se pueda eliminar el registro. Comprendo que debo
hacerlo disparando el evento Delete de la tabla origen y antes de
borrar (before), se tambien realizar la consulta para verificar que no
existan registros asociados pero no se que instrucción me permite
impedir el borrado de la tabla.

Podria solucionar el problema con una clave foranea pero no me es lo
mas recomendable porque una y otra tabla no tienen una relación
necesariamente de maestro detalle, mas bien corresponden a información
relacionada.

Desde ya muchas gracias.

PD: En realidad trabajo con una bd en SQL Anywhere pero por lo que
estuve viendo la forma de trabajar es muy similar a SQLServer.

Atte.

Cristián Muñoz Tello.
SNSI.


Dime los datos de tu tabla para poder ayudarte. por ahora te digo que podrias hacer uso de los declare en sql para poder verificar si existe el dato en la otra tabla con procedimiento o disparadores.
o escribeme a mi correo
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida