VicenteSabuco.com

Fecha de modificación de tablas en SQL

Cuando modificamos la estructura de una base de datos SQL en un servidor de preproducción lo lógico es ir preparando la actualización al servidor definitivo en producción. Pero a veces no se sigue el método lógico por prisas o descuido. Y cuando llega el momento de actualizar la base de datos nos encontramos con que no recordamos todas las tablas que hemos modificado y tenemos que ir comparando una a una.

Si consultamos el resumen del SQL Server Management Studio, solo nos muestra la fecha de creación de las tablas. En caso de haber creado alguna nos es de utilidad. Pero, ¿y si solo hemos añadido o modificado algún campo?. En ese caso la fecha de creación no nos sirve de nada y no hay forma alguna de añadir una nueva columna con la fecha de modificación de la tabla.

Si pinchamos con el botón derecho sobre las tablas propensas a haber sido modificas podemos ver las propiedades. Pero seguimos teniendo el mismo problema, solo se dispone de una fecha de creación. Ni rastro de fecha de modificación por ningún sitio. Como en otros casos, hay que recurrir a los comandos SQL para conseguir los datos que no disponemos de forma gráfica.

En este caso recurrimos a una consulta de sys.objects con una select para obtener la fecha de modificación:

SELECT *  FROM sys.objects
WHERE type = 'U'
ORDER BY modify_date DESC

La tabla sys.objects contiene una fila para cada objeto de ámbito de esquema definido por el usuario que se cree en la base de datos. Cada fila dispone de los siguientes campos: name, object_id, principal_id, schema_id, parent_object_id, type, type_desc, create_date, modify_date, is_ms_shipped, is_published y is_schema_published. De entre su docena de campos los más interesantes para mí son los siguientes:

  • name: lógicamente para identificar el nombre del objeto.
  • type: define el tipo del objeto con un char(2) . El tipo que nos interesa es U que son las tablas de usuario. Si hubieramos definido procedimientos almacenados serían del tipo P. En msdn se pueden consultar los tipos.
  • type_desc: funciona en paralelo con la columna type ofreciendo una descripción más detallada del tipo.
  • create_date: nos muestra la fecha de creación del objeto, como en la pantalla de resumen de objetos.
  • modify_date: nos muestra la fecha de modificación del objeto. Lo que buscábamos.

Con todo esto, como hemos visto en la sentencia de SQL más arriba, solo tenemos que consultar sys.objects. Podemos filtrar por el tipo de objeto que nos interese y en la columna modify_date tendremos la fecha de modificación.

[Total:6    Promedio:3.3/5]

Artículos relacionados

Sobre el autor Ver todos los posts Web del autor

Jose Emeterio

Consultor SEO y experto en analítica Web, se algo de Wordpress, fotografía y tecnología en general. Cuando quiero desconectar suelo viajar y cocinar.

Deja un comentario

Tu dirección de email no será publicada. Los campos obligatorios están marcados con *