Question

How can I find out the date a MS SQL Server 2000 object was last modified?

I need to get a list of all the views, procs, functions etc that were modified since Aug 15th. In sysObjects I can see the date objects were created but I need to know when they were last altered.

NB: this is an SQL 2000 database.

Was it helpful?

Solution

Note that SQL Server actually does not record the last modification date. It does not exist in any system tables.

The Schema Changes History report is actually constructed from the Default Trace. Since many admins (and web hosts) turn that off, it may not work for you. Buck Woody had a good explanation of how this report works here. The data is also temporary.

For this reason, you should never RELY on the Schema Changes History report. Alternatives:

  • Use DDL Triggers to log all schema modification to a table of your choosing.
  • Enforce a protocol where views and procs are never altered, they are only dropped and recreated. This means the created date will also be the last updated date (this does not work with tables obviously).
  • Vigilantly version your SQL objects and schema in source control.

--

Edit: saw that this is SQL 2000. That rules out Default Trace and DDL Triggers. You're left with one of the more tedious options I listed above.

OTHER TIPS

I know this is a bit old, but it is possible to view the last altered date of stored procs and functions with this query:

USE [Your_DB]    
SELECT * FROM INFORMATION_SCHEMA.ROUTINES

Just thought it would be nice to mention this since I searched for this very solution and this thread was misleading.

I have got confirmed Answer for above any procedure History for modified date with below query

Step -1 Execute the procedure on DB

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

Step -2 Then copy the text to Excel with headers

select route coloumn and then paste the exact procedure name into ^F window and press enter you will get exact modified date.

Regards, Sudhir Pune

This is not always correct because modify_date is Date the object was last modified by using an ALTER statement. If the object is a table or a view, modify_date also changes when a clustered index on the table or view is created or altered.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top