As procedures do SQL Server são executadas de forma simples e o comando admite a entrada dos parâmetros da procedure.
Exemplo de execução: exec dbo.cadastrar_contato 2344, 1, '02138604567'
Temos no exemplo acima a procedure "cadastrar_contato" com três parâmetros de entrada.
Problema:
Alguns procedures precisam ser executados de tempos em tempos, por exemplo: atualizar os dados de uma tabela para a extração de um relatório. Nesse caso, precisamos agendar a execução automática do procedure, com uma certa periodicidade. Como fazê-lo ?
Solução:
A solução desse problema é conhecido pelo famoso nome: criação de job.
Antes de mais nada é preciso saber que toda tarefa dentro do SQL Server é agendada através de um serviço do windows chamado SQL Server Agent, maiores explicações sobre o mesmo visite: Os serviços do SQL Server no ambiente Windows.
- Versão express do SQL Server
No SQL Server versões 2005 ou 2008, a versão express de ambas não possuem SQL Server Agent, tornando impossível o agendamento de tarefa de dentro do SQL Server, nesses casos, você deve criar o arquivo .sql, manter em uma pasta e executa-lo através de um arquivo .bat com o agendador de tarefas do windows.
1º passo: criamos o arquivo script.sql com a(s) linha(s) de comando chamando procedure(s). No nosso exemplo esse arquivo conteria 1 linha com o comando:
exec dbo.cadastrar_contato 2344, 1, '02138604567'
2º passo: criamos o arquivo script.bat com a(s) linha(s) de comando executando os scripts em sql. No nosso exemplo esse arquivo conteria 1 linha com o comando:
sqlcmd -S servidor\sqlexpress -i C:\temp\script.sql -o C:\temp\relatorio.txt
Onde:
servidor\sqlexpress >> servidor e instância de banco de dados;
Obs: esse comando será executado pelo usuário do Windows que possui também acesso ao banco de dados.
3º passo: criamos o agendamento e periodicidade de execução do arquivo script.bat, no agendador de tarefas do Windows do servidor de banco de dados.
- Versão profissional do SQL Server
Entre no SQL Server Agent, no gerenciador de objetos do banco de dados.
Clique no “+” no SQL Server Agent
Execute as ações contidas em:
https://fabrizziocaputo.wordpress.com/2011/09/01/sql-server-basico-4-agendando-um-job-no-sql-server/