上次修改日期对象

时间:2008-09-16 23:55:18

标签: sql-server sql-server-2000

如何查找上次修改MS SQL Server 2000对象的日期?

我需要获取自8月15日以来修改过的所有视图,过程,函数等的列表。在sysObjects中,我可以看到日期对象已创建,但我需要知道它们最后一次被更改。

注意:这是一个SQL 2000数据库。

4 个答案:

答案 0 :(得分:13)

我知道这有点旧,但可以使用此查询查看存储过程和函数的最后更改日期:

USE [Your_DB]    
SELECT * FROM INFORMATION_SCHEMA.ROUTINES

我认为这很好,因为我搜索了这个非常有效的解决方案而且这个帖子有误导性。

答案 1 :(得分:6)

请注意,SQL Server实际上记录上次修改日期。它在任何系统表中都不存在。

架构更改历史记录报告实际上是从Default Trace构建的。由于许多管理员(和网络主机)关闭它,它可能不适合你。 巴克伍迪很好地解释了这份报告是如何运作的here。数据也是暂时的。

因此,您永远不应该依赖于“架构更改历史记录”报告。备选方案:

  • 使用DDL Triggers将所有架构修改记录到您选择的表中。
  • 实施一个协议,其中视图和过程永远不会被更改,它们只会被删除并重新创建。这意味着创建的日期也将是最后更新的日期(这显然不适用于表格)。
  • 在源代码管理中警惕地修改SQL对象和架构。

-

编辑:看到这是SQL 2000.这排除了默认跟踪和DDL触发器。你留下了我上面列出的一个比较繁琐的选项。

答案 2 :(得分:5)

我已经确认上述任何程序的答案修改日期的历史记录以下查询

步骤-1执行DB

上的步骤
SELECT name, create_date, modify_date 
FROM sys.objects
WHERE type = 'p' 

步骤-2 然后将文本复制到带标题的Excel

选择route coloumn,然后将确切的程序名称粘贴到^ F窗口中,然后按Enter键 你会得到确切的修改日期。

此致 苏德赫 普纳

答案 3 :(得分:1)

这并不总是正确的,因为modify_date是使用ALTER语句上次修改对象的日期。 如果对象是表或视图,则在创建或更改表或视图上的聚簇索引时,modify_date也会更改。