Sql-Server

如何辨識哪些 SSIS 包使用給定的環境變數?

  • July 10, 2019

我懷疑我今天的 Google 技能還不夠,但我正在尋找一個快速的 TSQL 腳本,該腳本將辨識包儲存中使用給定環境變數名稱的所有 SSIS 包。

例如,當我配置一個包並查看參數頁面時,我可以選擇一個給定的環境變數。在下面的螢幕截圖中,我關心的環境變數名為SMTP. 我想找到所有使用這個環境變數的包,這樣我就可以在進行任何整體更改之前進行一些調查/測試。

在此處輸入圖像描述

如果有人有現成的腳本,如果您能發布它,我將不勝感激,否則我會在編寫程式碼後發布一些內容。

謝謝!

由於環境變數可以在項目或包級別使用,因此此查詢將指示使用變數的所述級別并快速返回我想要的結果。希望這將在未來對其他人派上用場。

SELECT    objp.[referenced_variable_name] AS [EnvironmentVariable]
       , fldr.name AS FolderName
       , proj.name AS ProjectName
       , COALESCE('Package: ' + pkg.name, 'Project') AS Scope
       , objp.parameter_name COLLATE Latin1_General_CS_AS AS ParameterName
FROM SSISDB.catalog.object_parameters objp
   INNER JOIN SSISDB.catalog.projects proj
       ON objp.project_id = proj.project_id
   INNER JOIN SSISDB.catalog.folders AS fldr
       ON proj.folder_id = fldr.folder_id
   LEFT JOIN SSISDB.catalog.packages pkg
       ON objp.object_name = pkg.name
       AND objp.project_id = pkg.project_id
-- Only search Projects/Packages that reference Environment variables
WHERE objp.value_type = 'R'
   AND objp.referenced_variable_name LIKE '%SMTP%'

引用自:https://dba.stackexchange.com/questions/182602