Pregunta

¿Cómo puedo saber la fecha en que se modificó por última vez un objeto de MS SQL Server 2000?

Necesito obtener una lista de todas las vistas, procesos, funciones, etc. que se modificaron desde el 15 de agosto.En sysObjects puedo ver la fecha en que se crearon los objetos, pero necesito saber cuándo se modificaron por última vez.

NÓTESE BIEN:esta es una base de datos SQL 2000.

¿Fue útil?

Solución

Tenga en cuenta que SQL Server realmente lo hace no registrar la fecha de la última modificación.No existe en ninguna tabla del sistema.

El informe Historial de cambios de esquema en realidad se construye a partir del Seguimiento predeterminado.Dado que muchos administradores (y servidores web) lo desactivan, es posible que no funcione para usted.Buck Woody tuvo una buena explicación de cómo funciona este informe. aquí.Los datos también son temporales.

Por este motivo, nunca debe CONFIAR en el informe Historial de cambios de esquema.Alternativas:

  • Usar Activadores DDL para registrar todas las modificaciones del esquema en una tabla de su elección.
  • Aplique un protocolo en el que las vistas y los procesos nunca se modifiquen, solo se eliminen y se vuelvan a crear.Esto significa que la fecha de creación también será la última fecha de actualización (obviamente, esto no funciona con tablas).
  • Versione atentamente sus objetos y esquemas SQL en el control de código fuente.

--

Editar:Vi que esto es SQL 2000.Eso descarta el seguimiento predeterminado y los activadores DDL.Te queda una de las opciones más tediosas que mencioné anteriormente.

Otros consejos

Sé que esto es un poco antiguo, pero es posible ver la última fecha modificada de procesos y funciones almacenados con esta consulta:

USE [Your_DB]    
SELECT * FROM INFORMATION_SCHEMA.ROUTINES

Pensé que sería bueno mencionar esto ya que busqué esta misma solución y este hilo era engañoso.

He recibido una respuesta confirmada para cualquier procedimiento anterior. Historial para la fecha de modificación con la siguiente consulta.

Paso -1 Ejecutar el procedimiento en DB

SELECT name, create_date, modify_date 
FROM sys.objects
WHERE type = 'p' 

Paso -2 y luego copie el texto para sobresalir con encabezados

Seleccione Route COLOUMN y luego pegue el nombre exacto del procedimiento en la ventana ^F y presione ENTER, obtendrá la fecha modificada exacta.

Saludos, Sudhir Pune

Esto no siempre es correcto porque modificar_fecha es la fecha en la que el objeto se modificó por última vez mediante una instrucción ALTER. Si el objeto es una tabla o una vista, modificar_fecha también cambia cuando se crea o modifica un índice agrupado en la tabla o vista.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top