Exécution automatique des procédures stockées

Les procédure stockées marquées pour l'exécution automatique sont exécutées à chaque démarrage de SQL Server. Cette exécution automatique est utile si vous voulez effectuer régulièrement certaines opérations ou dans le cas d'une procédure exécutée en arrière-plan, qui doit toujours être active. Elle revêt également de l'importance dans le cas de procédures stockées exécutant des tâches système ou de maintenance dans tempdb, par exemple la création d'une table temporaire globale. De cette façon, la table temporaire existe toujours dès que tempdb est recréée lors du démarrage de SQL Server.

Une procédure stockée exécutée automatiquement opère avec les mêmes droits que les membres du rôle de serveur sysadmin. Les messages d'erreur produits par une procédure stockée sont enregistrés dans le journal des erreurs de SQL Server. Une procédure stockée en exécution automatique ne retourne pas d'ensemble de résultats. En effet, la procédure stockée est exécutée par SQL Server et non par un utilisateur et il n'y a pas d'emplacement où envoyer un ensemble de résultats.

L'exécution des procédures stockées commence lorsque la base de données master est restaurée au démarrage.

Définition, désactivation et contrôle de l'exécution automatique

Seul l'administrateur système (sa) peut marquer une procédure stockée afin qu'elle s'exécute automatiquement. En outre, la procédure stockée doit se trouver dans la base de données master, être la propriété de sa et ne pas posséder de paramètres d'entrée ou de sortie.

Utilisez sp_procoption pour :

  • désigner une procédure stockée existante comme procédure de démarrage ;

  • supprimer l'exécution automatique d'une procédure au démarrage de SQL Server.

Bien que l'exécution automatique s'applique individuellement pour chaque procédure stockée, l'option de configuration scan for startup procs de SQL Server peut être définie à l'aide de sp_configure de façon à éviter l'exécution automatique de toutes les procédures au démarrage de SQL Server. Afin d'éviter de lancer ces procédures stockées, spécifiez l'indicateur de trace 4022 comme paramètre de démarrage. Si vous lancez SQL Server avec la configuration minimale, (à l'aide de l'indicateur -f), les procédures stockées de démarrage ne sont pas exécutées. Pour plus d'informations, consultez Indicateurs de trace.

Méthode préconisée

Le nombre de procédures au démarrage est illimité, mais gardez à l'esprit que chacune utilise un thread de travail lors de son exécution. Si vous devez exécuter plusieurs procédures au démarrage mais si vous ne devez pas les exécuter de manière parallèle, utilisez comme procédure de démarrage une des procédures qui appellera les autres. Cette démarche permet de n'utiliser qu'un seul thread de travail.

Pour valider ou désactiver l'exécution automatique d'une procédure stockée

Pour valider ou désactiver l'option de configuration « scan for startup procs »

Voir aussi

Concepts