Um recurso do SQL Server 2008 que deveria estar presente em todos os cenários é o Policy Management, mas por que afirmo isso? Pelo simples fato de ser a ferramenta de “colocar a casa em ordem”, pois do que adianta em reuniões definirmos padrões de nomenclaturas, modelagem, configurações e segurança, se no dia-a-dia não é possível validar estes padrões de forma prática?
Para demonstrar o potencial desta ferramenta, elaborei um simples exemplo que ajuda identificar dentre as tabelas de um banco de dados, quais estão fora de um padrão de nomenclatura.
Primeiro passo deste exemplo é a criação de um banco de dados, com a seguinte estrutura e tabelas como nosso cenário:

Como podem perceber, a maioria das tabelas possuem a nomenclatura “T[Número][Número][Número]_[Nome]”, então imaginemos que durante uma reunião com todos os DBAs da organização, foi definido que esta nomenclatura deverá ser o padrão de agora em diante! Seria uma boa hora de pedir demissão ou utilizar os recursos que você possui no SQL Server 2008 e garantir sua promoção!
Segundo passo, lembra daquela pasta Management que poucos têm a curiosidade de saber o que ela faz? Bem, lá esta o Policy Management! Agora é só habilitá-lo:

Agora que você habilitou este recurso, vamos criar nossas condições (ou Conditions) para nossas políticas/regras (ou Policies):

Na primeira condição, vamos definir qual o banco de dados que vamos trabalhar, no caso o banco de dados com nome “Teste”.
Abaixo defini um nome qualquer para esta condição, determinei qual o tipo de objeto (Facet) que vamos trabalhar nesta condição, no caso o tipo “Database”, e uma expressão simples de condição, verificando onde o nome do banco de dados (@Name) é igual a “Teste”.

Feito isso, vamos para nossa próxima condição.
Nossa próxima condição será o padrão de nomenclatura das nossas tabelas. Aqui trabalharemos com o tipo de objeto (Facet) Table, onde o nome do objeto (@Name) é igual a expressão ‘T[0-9] [0-9] [0-9]_%’.
![@Name LIKE 'T[0-9] [0-9] [0-9]_%' @Name LIKE 'T[0-9] [0-9] [0-9]_%'](http://sqlfromhell.files.wordpress.com/2010/09/clip_image010.jpg?w=483&h=346)
Concluídas as condições, vamos definir nossa política/regra (Policy):

Visto que uma regra é formada por uma ou mais condições que a definem, vamos escolhe nossa condição que testa o padrão de nomenclatura das nossas tabelas, a qual denominei “Table$Name”.

Em seguida, restringimos o banco de dados segundo a condição “Database$Teste”, validando a nomenclatura somente das tabelas do banco de dados “Teste”:

Definimos no campo Evaluation Mode, que nossa política será executada por meio de um agendamento (On schedule):

No botão Pick, escolhemos um agendamento ou criamos um novo:

Habilitamos nossa política (checkbox “Enabled”) e finalizamos a criação dela:

Pronto, agora temos nossa primeira política:

Vamos executá-la clicando com o botão direito, em seguida clicando em Evaluate.
Nesta nova tela, poderemos gerar um relatório com os erros encontrados (Export Results).

Mas eu não disse que era bem prático o processo?
Até agora vimos parte desta praticidade, então na janela Object Explorer, habilite o botão “Show Policy Health State for all nodes” que fica próximo ao botão de “Refresh”:

Agora você pode navegar pelos erros encontrados pelo Policy Management:

Já que o Policy Management abriu seus olhos para novas possibilidades, nos próximos artigos vou trabalhar outras questões mais específicas desta ferramenta, então aproveite!
