如何查找上次修改MS SQL Server 2000对象的日期?
我需要获得自8月15日以来修改过的所有视图,过程,函数等的列表.在sysObjects中,我可以看到日期对象已创建,但我需要知道它们最后被修改的时间.
注意:这是一个SQL 2000数据库.
我知道这有点旧,但是可以使用此查询查看存储过程和函数的最后更改日期:
USE [Your_DB] SELECT * FROM INFORMATION_SCHEMA.ROUTINES
只是觉得提起这个很好,因为我搜索了这个非常有效的解决方案而且这个帖子很容易引起误解.
需要注意的是SQL Server实际上并没有记录最后修改日期.它在任何系统表中都不存在.
"架构更改历史记录"报告实际上是根据" 默认跟踪"构建的.由于许多管理员(和网络主机)关闭它,它可能不适合你.巴克伍迪过的这份报告是如何工作的一个很好的解释在这里.数据也是暂时的.
因此,您永远不应该依赖于"架构更改历史记录"报告.备择方案:
使用DDL触发器将所有架构修改记录到您选择的表中.
实施一个不会更改视图和过程的协议,只删除它们并重新创建它们.这意味着创建的日期也将是最后更新的日期(这显然不适用于表格).
在源代码管理中警惕地修改SQL对象和模式.
-
编辑:看到这是SQL 2000.这排除了默认跟踪和DDL触发器.你留下了我上面列出的一个比较繁琐的选项.
我已经对以上任何程序的历史记录得到了肯定的答案,并带有以下查询的修改日期
步骤-1在DB上执行该过程
SELECT name, create_date, modify_date FROM sys.objects WHERE type = 'p'
步骤-2然后将文本复制到带有标题的Excel
选择路由对话框,然后将确切的过程名称粘贴到^ F窗口中,然后按Enter,您将获得确切的修改日期。
问候,Sudhir Pune