SQL Server: Consulta para Obter Objetos Modificados Recentemente em um Banco de Dados 🔍

1️⃣ Introdução:

Objetivo:
Monitorar modificações em objetos de banco de dados é essencial para a manutenção e o gerenciamento eficazes de sistemas SQL Server. Este script permite recuperar informações sobre objetos (como tabelas, procedimentos armazenados, etc.) que foram alterados recentemente em um banco de dados específico. Essa consulta é particularmente útil para administradores de banco de dados e desenvolvedores que precisam acompanhar as mudanças no esquema do banco de dados.


2️⃣ Estrutura do Script SQL:

Este script SQL foi projetado para selecionar e exibir objetos modificados nos últimos n dias. A seguir, explicamos em detalhes cada parte do script:

Comando:

USE <database_name>;
GO
SELECT
    name AS object_name,
    SCHEMA_NAME(schema_id) AS schema_name,
    type_desc, create_date,
    modify_date
FROM
    sys.objects
WHERE
    modify_date > GETDATE() - <n_days>
ORDER BY
    modify_date;
GO


3️⃣ Detalhamento do Script:

  •  Definir o Contexto do Banco de Dados:

A instrução USE <database_name> define o banco de dados em que a consulta será executada. Substitua <database_name> pelo nome real do banco de dados em que você deseja realizar a consulta.

Comando:

USE <database_name>; 
GO 
  •  Selecionar Informações dos Objetos:

Esta parte do script seleciona as informações dos objetos de banco de dados presentes na tabela sys.objects, onde é possível consultar dados importantes como o nome do objeto, seu esquema, tipo, data de criação e última modificação.

Campos Selecionados:

  • name AS object_name: Recupera o nome do objeto.
  • SCHEMA_NAME(schema_id) AS schema_name: Retorna o nome do esquema ao qual o objeto pertence.
  • type_desc: Descrição do tipo de objeto (exemplo: "TABLE", "PROCEDURE").
  • create_date: Exibe a data de criação do objeto.
  • modify_date: Exibe a data da última modificação no objeto.

Comando:

SELECT name AS object_name, SCHEMA_NAME(schema_id) AS schema_name, type_desc, create_date, modify_date FROM sys.objects; 
  •  Filtrar por Data de Modificação:

O filtro WHERE modify_date > GETDATE() - <n_days> permite selecionar apenas os objetos que foram modificados nos últimos n dias. Substitua <n_days> pelo número de dias desejado para a análise.

Comando:

WHERE
modify_date > GETDATE() - <n_days>;

  •  Ordenar Resultados:

A instrução ORDER BY modify_date organiza os resultados pela data de modificação em ordem crescente, exibindo os objetos mais antigos modificados primeiro.

Comando:

ORDER BY modify_date;


4️⃣ Aplicabilidade do Script:

Este script é útil em várias atividades de administração e desenvolvimento de banco de dados, tais como:

  • Monitoramento de Alterações:
    Acompanhar as mudanças no esquema do banco de dados e identificar quais objetos foram alterados recentemente.

  • Auditoria:
    Manter um registro de quando e quais objetos foram modificados, essencial para auditorias e conformidade.

  • Manutenção:
    Planejar e executar tarefas de manutenção com base nas alterações recentes nos objetos do banco de dados.


5️⃣ Instruções para Execução:

Antes de executar este script, certifique-se de substituir:

  • < database_name > pelo nome do banco de dados desejado.
  • < n_days > pelo número de dias que você deseja considerar para a análise.

Este script proporciona uma visão clara e organizada dos objetos modificados recentemente, ajudando a manter o controle sobre as modificações no banco de dados.


6️⃣ Considerações Finais:

A consulta descrita neste artigo oferece uma maneira eficiente e flexível de monitorar modificações em objetos de banco de dados. Ela pode ser utilizada para diversas finalidades, como auditoria, monitoramento de alterações e execução de tarefas de manutenção. A personalização do número de dias e do banco de dados torna essa consulta uma ferramenta essencial para gerenciar mudanças no esquema do banco de dados SQL Server.

 

Data de Publicação: 30-10-2023

Categoria: SQL Server