Esecuzione automatica di stored procedure

Le stored procedure contrassegnate per l'esecuzione automatica vengono eseguite a ogni avvio di SQL Server. Ciò è utile se si desidera eseguire regolarmente alcune operazioni o se è disponibile una stored procedure che viene eseguita come processo in background e che si prevede venga eseguita sempre. È inoltre possibile utilizzare l'esecuzione automatica delle stored procedure per eseguire attività di sistema o di manutenzione in tempdb, ad esempio per creare una tabella temporanea globale. In questo modo si garantisce che esista sempre una tabella temporanea quando tempdb viene ricreato all'avvio di SQL Server.

Una stored procedure eseguita automaticamente utilizza le stesse autorizzazioni dei membri del ruolo predefinito del server sysadmin. I messaggi di errore generati dalla stored procedure vengono scritti nel log degli errori di SQL Server. Evitare di restituire set di risultati da una stored procedure eseguita automaticamente. Poiché la stored procedure viene eseguita da SQL Server anziché da un utente, non è disponibile una destinazione per i set di risultati.

L'esecuzione delle stored procedure inizia quando il database master viene ripristinato all'avvio.

Impostazione, annullamento e controllo dell'esecuzione automatica

Solo l'amministratore di sistema (sa) può contrassegnare una stored procedure per l'esecuzione automatica. La stored procedure, inoltre, deve essere nel database master, il proprietario deve essere sa e deve essere priva di parametri di input o output.

Utilizzare la procedura sp_procoption per:

  • Designare una stored procedure esistente come procedura di avvio.

  • Bloccare l'esecuzione di una procedura all'avvio di SQL Server.

Sebbene le stored procedure vengano impostate individualmente per l'esecuzione automatica, è possibile impostare l'opzione di configurazione di SQL Serverscan for startup procs utilizzando sp_configure per impedire l'esecuzione automatica di tutte le stored procedure all'avvio di SQL Server. Per evitare l'avvio delle stored procedure, specificare il flag di traccia 4022 come parametro di avvio. Se si avvia SQL Server con la configurazione minima (specificando il flag -f), le stored procedure di avvio non vengono eseguite. Per ulteriori informazioni, vedere Flag di traccia.

Procedura consigliata

Non è previsto alcun limite per le procedure di avvio, ma è necessario tenere presente che ogni procedura richiede un thread di lavoro per l'esecuzione. Se è necessario eseguire più procedure all'avvio, ma non necessariamente in parallelo, è possibile impostare una delle procedure come procedura di avvio che richiama le altre procedure. In questo modo è sufficiente un solo thread di lavoro.

Per impostare o annullare l'impostazione dell'esecuzione automatica di una stored procedure

Per impostare o annullare l'impostazione dell'opzione di configurazione scan for startup procs

Vedere anche

Concetti