Cómo evitar que se borre un registro de la BD

09/05/2005 - 17:10 por Jordi Faiges | Informe spam
HOLA!!!
Tengo una base de datos en SQL Server con algunas tablas maestras que
permito modificar a través de la aplicación, pero me gustaría evitar que
algunos registros de estas tablas se puedan eliminar (no sólo a través de la
aplicación). Quería saber si puedo evitar el borrado de un registro por
ejemplo a través de un trigger. He probado con un 'Before Delete' pero no me
reconoce el Before. No se si debo utilizar 'Instead of' o alguna otra
posibilidad.

Saludos.
 

Leer las respuestas

#1 qwalgrande
09/05/2005 - 17:54 | Informe spam
Hola.

Un trigger de tipo "instead of" podría resolver tu problema. Recibes el
borrado y lo gestionas antes de lanzarlo. Sin embargo a mí los triggers no
me gustan nada, menos que los cursores.

Como alternativa, te propongo crear una tabla que contenga la clave primaria
de la tabla a proteger y algún campo más si quieres, a modo de descripción.
Luego creas una Foreign key a esta segunda tabla e insertas los registros
protegidos en la segunda tabla. La segunda tabla no está accesible por la
aplicación, con lo que sólo tú la podrás modificar y la integridad
referencial velará por los registros a proteger.

Pero hazlo como veas, no pretendo adoctrinar a nadie sobre el uso o no de
los triggers. Que para mí sean la última opción no significa que no puedan
resolver con facilidad más de un problema.

qwalgrande


"Jordi Faiges" wrote in message
news:ekbW%
HOLA!!!
Tengo una base de datos en SQL Server con algunas tablas maestras que
permito modificar a través de la aplicación, pero me gustaría evitar que
algunos registros de estas tablas se puedan eliminar (no sólo a través de
la
aplicación). Quería saber si puedo evitar el borrado de un registro por
ejemplo a través de un trigger. He probado con un 'Before Delete' pero no
me
reconoce el Before. No se si debo utilizar 'Instead of' o alguna otra
posibilidad.

Saludos.


Preguntas similares