2008-09-16 45 views
6

¿Cómo puedo averiguar la fecha en que se modificó por última vez un objeto MS SQL Server 2000?Fecha último objeto modificado

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 fueron modificados por última vez.

NB: esta es una base de datos SQL 2000.

+3

Para los demás que puedan encontrar esta publicación y buscar lo que yo seleccioné * del pedido sys.all_objects por modify_date desc obtiene esta información en SQL 2008 R2 –

Respuesta

6

Tenga en cuenta que SQL Server en realidad no no registra la última fecha de modificación. No existe en ninguna tabla de sistema.

El informe del historial de cambios del esquema se construye realmente a partir del Default Trace. Dado que muchos administradores (y servidores web) lo desactivan, puede que no funcione para usted. Buck Woody tuvo una buena explicación de cómo funciona este informe here. Los datos también son temporales.

Por esta razón, nunca debe confiar en el informe del historial de cambios del esquema. Alternativas:

  • Utilice DDL Triggers para registrar todas las modificaciones de esquema en una tabla de su elección.
  • Imponga un protocolo donde las vistas y los procesos nunca se modifican, solo se eliminan y vuelven a crear. Esto significa que la fecha de creación también será la última fecha actualizada (esto no funciona con las tablas, obviamente).
  • Versión de vigilancia de sus objetos SQL y esquema en control de fuente.

-

Editar: vio que este es SQL 2000. Esto descarta rastreo por omisión y los desencadenadores DDL. Te queda una de las opciones más tediosas que he enumerado anteriormente.

+0

gracias por las sugerencias que ayudarán a medida que avancemos. Supongo que estoy atascado por obtener una lista retrospectiva en este punto. –

12

Sé que esto es un poco viejo, pero es posible ver la última fecha alterada de procs almacenados y funciones con esta consulta:

USE [Your_DB]  
SELECT * FROM INFORMATION_SCHEMA.ROUTINES 

sólo pensé que sería bueno hablar de esto, ya Busqué esta misma solución y este hilo fue engañoso.

+0

Exactamente lo que estaba buscando, ¡muchas gracias! – AFract

4

tengo respuesta confirmada por encima de cualquier historia procedimiento para la fecha de modificación con consulta a continuación

Paso -1 Ejecutar el procedimiento de DB

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

Paso -2 A continuación, copie el texto a Excel con encabezados

seleccione route coloumn y luego pegue el nombre exacto del procedimiento en la ventana^F y presione intro obtendrá la fecha de modificación exacta.

Saludos, Sudhir Pune

1

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

Cuestiones relacionadas