识别SSIS包中的链接服务器

时间:2017-08-03 06:16:03

标签: ssis linked-server ssis-2012

我有大约500个SSIS包。我想获得使用链接服务器的SSIS包列表。我们必须得到这个的原因是我们现在正在删除链接服务器。我不想打开每个SSIS包并检查所有任务以查看链接服务器是否可用。

我们有什么方法可以做到这一点吗?

2 个答案:

答案 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应用程序并从代码中更改文件。

答案 1 :(得分:1)

如果你不想使用powershell,我会使用名为FnR.EXE的东西,你可以谷歌下载。再次,您只需搜索只是文本文件的XML。如果您知道链接服务器的名称,那就很好。如果您不知道链接服务器的名称,则必须搜索%.%.%.%形式的内容。知道所有链接的服务器名称会更加可靠(它应该更快地完成工作而不是通过所有的软件包)。

您还需要考虑您的包是否使用视图,该视图又引用链接服务器。然后链接的服务器名称实际上不会出现在包中。