Tema: Disparadores
Ver Mensaje Individual
  #4 (permalink)  
Antiguo 21/04/2014, 16:57
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Disparadores

Cita:
No se que es SP, pero por tiggers parece q no es difícil y así consigo que cada fila tenga valores en los campos correctos, que según he leído para eso sirven!
No exactamente.
Los TRIGGERs se crearon para acciones automáticas sobre eventos de tabla, pero no necesariamente para hacer ese tipo de validaciones. Se crearon más bien para acciones que siempre deban realizarse sobre el mismo registro que entra, se actualiza, o se borra, pero no es su meta restringir acciones sobre esos registros. O al menos no es la idea.
Debes tener en cuenta que al definir una acción sobre un UPDATE, esa acción se disparará todas las veces que se realice un UPDATE sobre esa tabla, cosa que podría suceder en actualizaciones que no impliquen cambios sobre esas columnas, por lo qu esstarías validando eventos que no suceden.
Antes bien se podría encapsular las altas y las modificaciones en SP, de modo que las acciones no dependan de lo que se manda en la sentencia, sino que se evalúen internamente dentro de ese SP.
Es mucho más eficiente y seguro.
Y más habitual en sistemas complejos.

De todos modos siempre hay un concepto que debes tener en cuenta: Es incorrecto e inadecuado obligar a la base a ocuparse de validaciones que deberías hacer en la aplicación antes de mandar los datos a la base.
Donde mejor puedes restringir lo que quieres es precisamente en la aplicación. Claro que para eso tendrás que programar más intensamente...
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)