我可以告诉 Integration Services 的 SSIS 包的最后修改日期吗

thu*_*eek 5 ssis sql-server date-modified

使用 SQL Server 2005(和 2008)

使用 DTS 包,我可以打开它,它会列出上次修改包的日期。我有一些 SSIS 包,我需要知道自上次发布以来它们是否被修改过。有没有办法知道它们上次修改的时间?

如果我右键单击,唯一看起来很有希望的选项是“报告”,但唯一的选项是包含包创建日期和一些版本信息的一般报告。我已经知道程序员没有更改任何版本默认值,所以那里没有有用的信息。

我想要上次修改日期或上次导入日期,或者让我知道是否需要担心自上次发布以来其中一些被修改的日期。

编辑:该文件存储在 MSDB 中。

squ*_*man 5

如果包存储在 MSDB 中,则不,唯一的日期/时间戳是创建日期。不跟踪修改日期。您需要在重新部署之前删除包以跟踪修改日期,这实际上只是将创建日期强制为您的重新部署日期。

在 SQL 2005 中,存储在 MSDB 中的包的元数据存储在 msdb.dbo.sysdtspackages 和 msdb.dbo.sysdtspackages90 中,因此您可以对这些表之一运行 SELECT 以查看您的包。对于 SQL 2008 及更高版本,表名是sysssispackages.

SELECT * from msdb.dbo.sysdtspackages90 WHERE name='mypackagename'
Run Code Online (Sandbox Code Playgroud)

如果您在服务器上的包位置是文件系统,那么您可以通过 Windows 资源管理器(或您想要使用的任何文件系统工具)获取包文件的修改日期。SQL 2005 的路径是[install drive]:\Program Files\Microsoft SQL Server\90\DTS\Packages\. 对于 SQL 2008,将 90 替换为 100,对于 SQL 2012,将其替换为 110。

否则,我认为你最好的办法是确保你的生产服务器上的安全性是足够的,这样只有那些应该部署包的人,然后在你的开发环境中跟踪你的发布日期(源代码控制,无论如何)。但是,对于确保生产不会在不知情的情况下发生变化并没有太大作用....