2017-08-03 14 views
0

我有大約500個SSIS包。我想獲得使用鏈接服務器的SSIS包列表。我們必須得到這個的原因是我們現在要刪除鏈接的服務器。我不想打開每個SSIS包並檢查所有任務以查看鏈接服務器是否可用。確定SSIS包中的鏈接服務器

有什麼辦法可以做到這一點?

回答

1

如果你不想使用powershell,我使用的東西叫FnR.EXE,你可以谷歌和下載。再次,您只需搜索只是一個文本文件的XML。如果你知道你的鏈接服務器的名字,那很好。如果您不知道鏈接服務器的名稱,則必須搜索%.%.%.%的格式。知道所有鏈接的服務器名稱會更加可靠(應該比通過所有包更快)

您還需要考慮您的軟件包是否使用了一個視圖,該視圖又引用了一個視圖鏈接服務器。然後鏈接的服務器名稱將不會真正出現在包中。

+0

非常感謝你尼克它爲我工作。感謝!!!!! –

1

這不是一個真正的答案,但它是太長的評論。您可以簡單地在SSIS包中搜索給定的文本。這些只不過是XML文件。

您可以使用f.ex. PowerShell的:

Get-ChildItem -recurse | Select-String -pattern "YOUR_LINKED_SERVER" | group path | select name 

這將至少給你鏈接服務器的軟件包列表。然後,根據其中你鏈接的服務器,你可能會想:

  1. 如果它的SQL字符串,只需更換它與空字符串名稱(PowerShell的還是其他什麼東西)
  2. 如果在其他組件,您可能想看看到Microsoft.SqlServer.Dts.Runtime名稱空間中,並編寫PowerShell腳本或.NET應用程序,並從代碼中更改文件。