Tutorial Job automática no SQL Express.

bartdjow

Novato XPZ
16 de Maio de 2012
1
1
3
Introdução:

Olá senhores/Seroritas, sou novo no fórum e nessas ultimas semanas, tive uma grande ajuda com as postagens do fórum, como forma de retribuir o conhecimento adiquirido, irei postar uma pequena contribução para ajudar os novatos, ou aqueles que não sabiam como usar a ferramenta que já vem no ruwindows para trabalhar com mssql.

Do que se trata ?:


É uma simples ferramenta chamada SQLCMD usada dento do CMD (prompt DOS do ruwindows) - O sqlcmd é um utilitário de linha de comando para execução interativa ad hoc dos scripts e instruções Transact-SQL , bem como para automatização das tarefas de script do Transact-SQL .

Deixando de lado o texto chato, basicamente quando se instala o SQLEXPRESS em qqr versão, não é instalado o SQL SERVER AGENT, assim impossibilita a criação de jobs no SQL pra automação do vip, ranking ou qqr outra coisa que vc deseja executar no seu servidor em um horário programado.


Como funciona ?

Nós vamos criar 2 arquivos, o primeiro com as querys a executar, pra quem usa MuEmu, sabe que o vip fica na coluna AccountLevel, assim vamos criar um arquivo chamado query.sql ex:


Código:
USE MuOnline
update dbo.MEMB_INFO set AccountLevel = 0 where AccountExpireDate < GETDATE()

Logo depois vamos criar um aquivo em lotes no mesmo local chamado start.bat (ou o nome que quiser)

Dentro do arquivo ponha isso:

Código:
@echo off
:Inicio
echo Executando %TIME%...
TIMEOUT /T 3600 /NOBREAK
sqlcmd -U sa -P Senha -S SEU_IP -i query.sql -I
goto Inicio

Basicamente você deve alterar com os dados do seu servidor, como usuário, senha e ip, onde tem 3600 é o tempo em segundo em que o script vai se repetir, com o mínimo de 1 e máximo de 99999.

24 Horas = 86400
01 Hora = 3600

Agora é só executar seu script e ele vai rodar o que estiver dentro do arquivo sql, definido no tempo que vc colocou.

Extra:

Para criar um log para analizar erros, e as horas em que ele foi executado, basta criar um novo arquivo em lotes chamado log.bat, com o seguinte comando:

Código:
start.bat >> "%TIME:~0,2%Hrs%TIME:~3,2%min.LOG"
daí ao invés de executar por start.bat, você irá abrir o log.bat, ele se encarregará de abrir o start e fazer o log.

Assim quando ele for executado sempre irá aparecer um novo arquivo com a hora e minutos em que foi criado, com todo log da execução.
 
  • Like
Reactions: leides2