Utilizando SQL Server Agent Tokens

O dia-a-dia de um DBA normalmente é muito cheio, então tudo aquilo que permita ganhar tempo é sempre bem-vindo. Nesse contexto scripts padronizados são uma ferramenta muito utilizada.

Entre as várias tarefas que ocupam o dia de um DBA, rotinas automatizadas em JOBs são algo bem comum e como muitas delas se repetem esse é um dos momentos em que os scripts padronizados são utilizados.

Para facilitar essas rotinas em JOBs podemos utilizar os Tokens do SQL Server Agent. Tokens são como variáveis que permitem obter informações como o nome do servidor, da instância ou do banco de dados em momento da execução.

De todos os Tokens existentes, os mais utilizados são A-DBN, A-SVR e INST, que representam o nome do banco de dados, servidor e instância, respectivamente, mas uma tabela completa pode ser encontrada nesse link.

Todos os Tokens são CASE SENSITIVE e possuem uma sintaxe obrigatória que deve ser respeitada, onde são utilizados Macros de “escape” (a tradução é mais ou menos essa mesmo, “escape”, ou seja, um comando que diz ao SQL Server que ele deve desconsiderar um determinado carácter).

As macros de “escape” são necessárias, pois como os Tokens estarão dentro de algum comando que utiliza strings (PRINT, SELECT, etc), devemos dizer ao SQL Server que ele deve ignorar, por exemplo, as aspas simples nas quais o Token está inserido.

As macros de “escape” são três:

  • $(ESCAPE_SQUOTE(nome_do_token)): ao substituir o token, “escapa” as aspas simples. Substitui uma aspa simples por duas aspas simples.
  • $(ESCAPE_DQUOTE(nome_do_token)): ao substituir o token, “escapa” as aspas duplas. Substitui uma aspa dupla por duas aspas duplas.
  • $(ESCAPE_RBRAKET(nome_do_token)): ao substituir o token, “escapa” colchetes do lado direito (]). Substitui um colchete direito por dois colchetes direitos. Colchetes eram mais utilizados na sintaxe do SQL Server 2000.

Um ponto importante é que apenas alguns Tokens do SQL Server Agent podem ser utilizados em Jobs ativados por alertas e estes são desabilitados por padrão. Tais Tokens são A-DBN, A-SVR, A-ERR, A-SEV, A-MSG e WMI(propriedade).

Se você precisar utilizar esses tokens você deve clicar com o botão direito do mouse sobre o  SQL Server Agent, clicar em “Properties“, ir até a aba “Alert System” e selecionar a opção “Replace tokens for all job responses to alerts“.

Habilitando o uso dos tokens

Habilitando a substituição de tokens

Essa alteração só terá efeito APÓS a reinicialização do SQL Server Agent.

Se você não ativar a substituição de tokens e utilizar algum deles ativado por alertas, como o demonstrado abaixo:

Job step com token

Job step com token

job_alert

Configurando alerta para job

Seu job irá falhar:

Erro com o token

Erro com o token

Com as configurações corretas o token irá funcionar e veríamos algo como:

Token funcionando corretamente

Token funcionando corretamente

Os usos para os tokens são inúmeros, com eles você poderia, por exemplo, criar auditorias ou notificações por e-mail.

E você, tem algum uso interessante para os tokens? Alguma curiosidade? Deixe seu comentário!

Leitura recomendada:

Esse post foi publicado em Artigos, Virtual PASS BR. Bookmark o link permanente.

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s