Rechercher la date de dernière modification / deployment du package SSIS – SQL Server

Je voudrais find la dernière date de modification du package SSIS en exécutant SQL Query. Par exemple, la requête ci-dessous renvoie la date de dernière modification des procédures dans l'ordre desc. Je m'attends au même genre de requête pour le packageage SSIS. Est-ce possible d'get ces informations auprès de DB?

select name, create_date, modify_date from sys.objects where type='P' order by modify_date desc 

Il y a plusieurs façons de répondre à cette question: Puis-je indiquer la date de la dernière modification sur un package SSIS à partir de Integration Services? .Posting on SO aussi, en tant que wiki de communauté

Si les packages sont stockés dans MSDB alors non, le seul horodatage est la date de création. La date modifiée n'est pas suivie. Vous devez supprimer le package avant de le redéployer afin de suivre une date de modification, ce qui consiste essentiellement à forcer la date de création à être votre date de redeployment.

Dans SQL 2005, les métadonnées des packages stockés dans MSDB sont stockées dans msdb.dbo.sysdtspackages et msdb.dbo.sysdtspackages90 afin que vous puissiez exécuter un SELECT sur l'une de ces tables pour voir vos packages. Pour SQL 2008 et les versions ultérieures, le nom de la table est sysssispackages.

SELECT * à partir de msdb.dbo.sysdtspackages90 OERE nom = 'mypackagename'

Si l'location de votre package sur le server est Système de files, vous pouvez get la date modifiée sur le file du package via l'Explorateur Windows (ou tout autre outil de système de files que vous voulez utiliser). Le path d'access à SQL 2005 est [lecteur d'installation]: \ Program Files \ Microsoft SQL Server \ 90 \ DTS \ Packages. Remplacez le 90 par 100 pour SQL 2008 ou 110 pour SQL 2012.

Sinon, je pense que votre meilleur pari serait de s'assurer que la security sur votre server de production est suffisante pour que seuls ceux qui devraient déployer des packages le soient, et de suivre vos dates de publication dans votre environnement de développement (contrôle de source, peu importe). Ne fait pas vraiment beaucoup pour s'assurer que la production ne change pas sans le savoir, cependant ….

Si vous utilisez SQL Server 2012 (ou version ultérieure) et que vous déployez votre package dans SSISDB, le code suivant doit fonctionner.

 USE SSISDB GO SELECT MAX(p.last_deployed_time) AS last_deployed_time FROM [internal].[projects] p INNER JOIN [internal].[packages] pk ON p.project_id = pk.project_id WHERE pk.name = 'Package1.dtsx'