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...