En primer lugar creamos un procedimiento (almacenado) para que se actualicen automáticamente las fechas de validez de los tipos de IVA cuando añadimos un registro nuevo a la tabla. Vemos el funcionamiento del procedimiento. Con este procedimiento se hacen dos actualizaciones en la misma tabla, por un lado se hace una inserción y por otro lado una actualización de otro registro diferente al insertado. Suponemos que si se produce un error a mitad de las dos operaciones (inserción y actualización) se producirían inconsistencia de los datos. Para comprobarlos generamos los errores manualmente y comprobamos que no se producen inconsistencias porque el procedimiento se ejecuta dentro de una transacción . Explicamos, más o menos, qué es una transacción. Hay dos tipos de procedimientos almacenados, el creado anteriormente es un procedimiento ejecutable , así que para finalizar vemos como se crea un procedimiento seleccionable , que devuelve una tabla de datos, y como se emplea.
Comenzamos viendo la sentencia BETWEEN que generalmente es poco utilizada. Vemos como agrupar por campos calculados. Al principio no nos funciona y por ello tenemos que hacer una consulta de consulta o consulta con subconsulta. A continuación agrupamos por meses y por meses y años, pero vemos que no existe una función para extraer los trimestres y poder hacer agrupaciones trimestrales. Así que en vista de que no existe la función que necesitamos, la creamos ¡y no lo hacemos ni con BASIC ni con Python!