Compartilhar via


Execução automática de procedimentos armazenados

Os procedimentos armazenados marcados para execução automática são executados sempre que o SQL Server for iniciado. Isto é útil se tiver operações que deseja executar regularmente, ou se tiver um procedimento armazenado que execute como um processo em segundo plano e que se espera que esteja executando sempre. Um outro uso para a execução automática de procedimentos armazenados é o procedimento armazenado realizar tarefas do sistema ou de manutenção no tempdb, tal como criar uma tabela temporária global. Isto garante que essa tabela temporária existirá sempre que o tempdb for recriado quando o SQL Server for iniciado.

Um procedimento armazenado executado automaticamente funciona com as mesmas permissões dos membros da função de servidor fixa do sysadmin. Qualquer mensagem de erro gerada pelo procedimento armazenado é gravada no log de erros do SQL Server. Não retorne nenhum conjunto de resultados de um procedimento armazenado que é executado automaticamente. Como o procedimento armazenado é executado pelo SQL Server ao invés de pelo usuário, os conjuntos de resultados não têm para onde ir.

A execução dos procedimentos armazenados inicia-se quando o banco de dados mestre for recuperado durante a inicialização.

Configurando, limpando e controlando a execução automática

Somente o administrador de sistema (sa) pode marcar um procedimento armazenado para ser executar automaticamente. Além disso, o procedimento armazenado deve estar no banco de dados mestre, pertencer ao sa e não deverá conter parâmetros de entrada ou de saída.

Use sp_procoption para:

  • Determinar um procedimento armazenado existente como um procedimento de inicialização.

  • Interromper a execução de um procedimento na inicialização do SQL Server.

Embora os procedimentos armazenados estejam definidos individualmente para execução automática, a opção de configuração SQL Serververificação dos procedimentos de inicialização pode ser definida usando sp_configure para impedir que todos os procedimentos armazenados sejam executados automaticamente quando o SQL Server é inicializado. Para ignorar a iniciação desses procedimentos armazenados, especifique o sinalizador de rastreamento 4022 como um parâmetro de inicialização. Se iniciar o SQL Server com configuração mínima (usando o sinalizador -f), os procedimentos armazenados de inicialização não serão executados. Para obter mais informações, consulte Sinalizadores de rastreamento.

Práticas recomendadas

Não há limite para o número de procedimentos de inicialização que você pode ter, porém lembre-se de que cada um consome um thread de trabalho durante a execução. Se precisar executar vários procedimentos na inicialização, mas, se não for necessário executá-los em paralelo, torne um procedimento o procedimento de inicialização e faça com que este procedimento chame os demais. Isto usará apenas um thread de trabalho.

Para definir ou limpar um procedimento armazenado para uma execução automática

Para definir ou limpar a verificação da opção de configuração dos procedimentos de inicialização

Consulte também

Conceitos