Ejecución automática de procedimientos almacenados

Los procedimientos almacenados marcados para la ejecución automática se ejecutan cada vez que se inicia SQL Server.Esto resulta de gran utilidad si hay operaciones que desea realizar periódicamente, o bien si hay un procedimiento almacenado que se ejecuta como proceso en segundo plano y se debe ejecutar en todo momento. Otra forma de utilizar la ejecución automática de procedimientos almacenados consiste en que el procedimiento realice tareas del sistema o de mantenimiento en tempdb, como crear una tabla temporal global. De este modo, se garantiza que esa tabla temporal existirá siempre cuando se vuelva a crear tempdb al iniciarse SQL Server.

Un procedimiento almacenado que se ejecuta automáticamente funciona con los mismos permisos que los miembros de la función fija de servidor sysadmin. Todos los mensajes de error generados por el procedimiento almacenado se escriben en el registro de errores de SQL Server. No se devuelve ningún conjunto de resultados de un procedimiento almacenado que se ejecuta automáticamente. Puesto que el responsable de ejecutar el procedimiento almacenado es SQL Server y no el usuario, no existe ningún destino para el conjunto de resultados.

La ejecución de los procedimientos almacenados se inicia cuando se recupera la base de datos maestra en el inicio.

Establecer, borrar y controlar la ejecución automática

Únicamente el administrador de sistema (sa) puede marcar un procedimiento almacenado para que se ejecute automáticamente. Además, el procedimiento almacenado debe encontrarse en la base de datos maestra, pertenecer a sa y no incluir parámetros de entrada ni de salida.

Utilice sp_procoption para:

  • Designar un procedimiento almacenado existente como procedimiento de inicio.

  • Detener la ejecución de un procedimiento al iniciar SQL Server.

Si bien los procedimientos almacenados se configuran de forma individual para la ejecución automática, se puede establecer la opción de configuración scan for startup procs de SQL Server con sp_configure para impedir que todos los procedimientos se ejecuten automáticamente al iniciar SQL Server. Para omitir el inicio de estos procedimientos almacenados, puede especificar el indicador de traza 4022 como parámetro de inicio. Si inicia SQL Server con la configuración mínima (con el indicador -f), los procedimientos almacenados de inicio no se ejecutan. Para obtener más información, vea Marcas de traza.

Prácticas recomendadas

No existe límite en cuanto al número de procedimientos de inicio que se pueden crear, aunque debe tener en cuenta que cada uno consume un subproceso de trabajo mientras se ejecuta. Si es necesario ejecutar múltiples procedimientos en el inicio, pero no es necesario que se ejecuten en paralelo, haga que un procedimiento sea el procedimiento de inicio y que éste llame a los restantes. De este modo, sólo se utiliza un subproceso de trabajo.

Para establecer o borrar la configuración de ejecución automática de un procedimiento almacenado

Para establecer o borrar la opción de configuración scan for startup procs

Vea también

Conceptos