我可以告诉Integration Services的SSIS包上的最后修改date吗?

使用SQL Server 2005(和2008)

使用DTS包,我可以打开它,并列出包最后修改的date。 我有一些SSIS包,我需要知道自从我们上次发布以来是否修改过。 有什么方法可以告诉他们最后一次修改的时间吗?

如果我右键点击,唯一的select是“报告”,但是唯一的select是有一个包含创builddate和版本信息的一般报告。 我已经知道程序员没有更改任何版本默认值,所以没有任何有用的信息。

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

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

如果软件包存储在MSDB然后否,唯一的date/时间戳是创builddate。 修改date不被跟踪。 您需要在重新部署之前删除软件包,以便跟踪修改的date,这基本上只是强制创builddate为您的重新部署date。

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

 SELECT * from msdb.dbo.sysdtspackages90 WHERE name='mypackagename' 

如果您的服务器上的软件包位置是文件系统,那么您可以通过Windows资源pipe理器(或任何您要使用的文件系统工具)获取软件包文件上的修改date。 SQL 2005的path是[install drive]:\Program Files\Microsoft SQL Server\90\DTS\Packages\ 。 将SQLreplace为100的SQL为100,或为SQL 2012的110。

否则,我认为最好的办法是确保生产服务器上的安全性是足够的,只有那些应该部署软件包的人才能够在开发环境(源代码pipe理,不pipe)中跟踪你的发布date。 虽然没有了解它,但确实没有改变生产的确没有多大作用。

这里有一篇关于如何从SSIS包中检索信息的好文章。 这帮助我find过去需要的信息,这对您可能是有用的:

http://sqlblog.com/blogs/jamie_thomson/archive/2009/10/18/collecting-information-about-your-ssis-packages-ssis-nugget.aspx