Sql-Server
如何辨識哪些 SSIS 包使用給定的環境變數?
我懷疑我今天的 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%'