日期对象上次修改

时间:2020-03-05 18:57:32  来源:igfitidea点击:

如何找出MS SQL Server 2000对象的最后修改日期?

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

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

解决方案

回答

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

实际上,"架构更改历史记录"报告是从"默认跟踪"构建的。由于许多管理员(和网络主机)都将其关闭,因此它可能不适用于我们。
巴克·伍迪(Buck Woody)对这份报告的工作方式做了很好的解释。数据也是临时的。

因此,我们永远不应依赖"架构更改历史记录"报告。备择方案:

  • 使用DDL触发器将所有架构修改记录到我们选择的表中。
  • 强制执行一个协议,在该协议中,视图和proc绝不会更改,只能删除并重新创建。这意味着创建的日期也将是最后更新的日期(显然不适用于表)。
  • 在源代码管理中警惕地对SQL对象和架构进行版本控制。

--

编辑:看到这是SQL2000。排除了默认跟踪和DDL触发器。我们剩下的是我上面列出的较繁琐的选项之一。

回答

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

USE [Your_DB]    
SELECT * FROM INFORMATION_SCHEMA.ROUTINES

只是以为提到这一点会很高兴,因为我搜索了这种解决方案,并且该线程具有误导性。