Encontrar objetos modificados recientemente

Señal o problema observado

Un comportamiento cambió después de un despliegue o necesitamos reconocer qué objetos han recibido modificaciones recientes. El catálogo ofrece una fecha útil para reducir la búsqueda inicial.

Qué necesitamos distinguir

Una operación de esquema cambia la definición estructural de la base. Un despliegue es el proceso controlado que aplica uno o varios cambios a un ambiente.

La fecha registrada indica cuándo SQL Server observó la última modificación del objeto mediante determinadas operaciones de esquema. No identifica al autor, el contenido cambiado ni el despliegue que lo produjo.

Consulta

DECLARE @Dias INT = 30;
DECLARE @Desde DATETIME2 = DATEADD(DAY, -@Dias, SYSDATETIME());

SELECT
    s.name AS Esquema,
    o.name AS Objeto,
    o.type_desc AS Tipo,
    o.create_date AS FechaCreacion,
    o.modify_date AS FechaModificacion
FROM sys.objects AS o
INNER JOIN sys.schemas AS s
    ON s.schema_id = o.schema_id
WHERE o.is_ms_shipped = 0
  AND o.modify_date >= @Desde
  AND o.type IN ('U', 'V', 'P', 'FN', 'IF', 'TF', 'TR')
ORDER BY
    o.modify_date DESC,
    s.name,
    o.name;

Parámetros o permisos

Cambia @Dias según el periodo investigado. SYSDATETIME() usa la fecha y hora del servidor; compárala con la zona horaria y el registro de despliegues de tu entorno.

La consulta incluye tablas, vistas, procedimientos, funciones y triggers DML visibles. Los triggers DDL no aparecen en sys.objects; para ellos utiliza sys.triggers, como en la búsqueda de triggers y sus objetos asociados.

Cómo leer el resultado

Causalidad significa que un cambio produjo el efecto observado. La cercanía temporal solo indica correlación y no la demuestra.

Ordenamos desde el cambio más reciente para formar una lista de candidatos. Si el problema comenzó ayer, los objetos modificados poco antes merecen revisión, pero la cercanía temporal no demuestra causalidad.

En tablas y vistas, modify_date también puede cambiar cuando se crea o altera un índice. Una fila reciente podría representar mantenimiento de índices y no un cambio de columnas o código.

Un proceso de despliegue que elimina y vuelve a crear un objeto puede alterar tanto FechaCreacion como FechaModificacion. Por eso conviene comparar ambas fechas y consultar el historial del repositorio o de la herramienta de despliegue.

Qué conclusión sí permite obtener

Permite identificar objetos visibles cuya fecha de modificación registrada cae dentro del periodo elegido. Es una forma rápida de acotar una investigación.

Qué conclusión todavía no permite obtener

Una auditoría DDL registra eventos de cambios estructurales; el catálogo actual no sustituye ese historial ni el control de versiones.

No indica quién realizó el cambio, qué instrucción ejecutó ni cuál era la definición anterior. Tampoco registra cambios de datos ni reemplaza una auditoría DDL, control de versiones o historial de despliegues.

Un objeto ausente pudo haberse eliminado; ya no existiría en esta vista para contarlo.

Siguiente comprobación razonable

Compara los candidatos con el commit, script o paquete desplegado. Revisa su definición y dependencias, y correlaciona la hora con logs de aplicación, jobs y eventos del servidor antes de atribuir el problema.

Índice del recorrido

Desarrollo y exploración

22 artículos de Desarrollo y exploración
  1. 01Buscar una tabla o vista por nombre
  2. 02Buscar una columna en toda la base
  3. 03Buscar texto dentro de procedimientos, vistas y funciones
  4. 04Consultar dependencias de un objeto
  5. 05Listar relaciones y llaves foráneas
  6. 06Consultar llaves primarias, restricciones únicas e índices
  7. 07Listar columnas con tipo, longitud, nulabilidad y valor predeterminado
  8. 08Encontrar triggers y sus tablas asociadas
  9. 09Encontrar objetos modificados recientemente
  10. 10Obtener conteos aproximados de todas las tablas
  11. 11Medir el espacio utilizado por cada tabla
  12. 12Revisar columnas IDENTITY y su valor actual
  13. 13Detectar registros duplicados por una clave de negocio
  14. 14Detectar registros huérfanos
  15. 15Comparar dos conjuntos de datos
  16. 16Validar conversiones antes de modificar una columna
  17. 17Ejecutar un UPDATE con validación y reversión controlada
  18. 18Ejecutar un DELETE con respaldo lógico y reversión controlada
  19. 19Comparar la estructura de dos bases de datos
  20. 20Describir el resultado de una consulta o procedimiento
  21. 21Encontrar tablas sin llave primaria
  22. 22Buscar un valor en columnas seleccionadas