Depois de semanas sem postar, vou colocar um post bem breve aqui sobre SQL.

Recentemente precisei descobri quais tabelas foram modificadas recentemente sem ter que ver uma a uma. Se você tivesse poucas tabelas, isso não seria um problema, ver uma-a-uma, digamos umas 15 ou 20 seria até rápido. Mas podemos facilitar um pouco a nossa vida, limitando nossa amostra.

Isto aqui vale para SQL Server, não sei como seria em outras databases (Oracle, Postgree, MySQL e etc).

No SQL Server temos várias Views de sistema, no caso usaremo a View sys.tables, que nos fornece informações diversas sobre as tabelas do banco de dados.

SELECT * FROM sys.tables;

Executando um select sobre esta tabela obteremos um resultado semelhante a este:

sys_tables1

A imagem mostra apenas algumas colunas, existem muitas outras, mas vamos nos focar naquelas que precisamo no momento.

Veja que temos os nomes de todas as tabelas, e duas colunas de datas, createdate e modifydate.

A primeira instância, achariamos que teríamos que observer a tabela modify_date e ordenar por ordem decrescente por ela.

SELECT * FROM sys.tables ORDER BY modify_date DESC;

Infelizmente, a informação de data de modificação refere-se a inserção de dados, e não sobre sua estrutura.

sys_tables2

A coluna que temos que ver é createdate. Na figura não é possível observar isso, mas a data contida em createdate refere-se a última modificação estrutural realizada sobre ela.

Então bastaríamos fazer:

SELECT * FROM sys.tables ORDER BY create_date DESC;

Eu sei que este post não é muito informativo, é mais uma dica.

Abraços e até o próximo post.