现在,我可以使用C#程序将本地计算机上的SSIS包上传到SQL Server:
Microsoft.SqlServer.Dts.Runtime.Application app;
app = new Microsoft.SqlServer.Dts.Runtime.Application();
string pkg = @"C:\Temp\myPackage.dtsx";
Package loadedPkg = app.LoadPackage(pkg, null);
app.SaveToSqlServerAs(loadedPkg, null, "myNewPackage", "myServer", null, null);
这很好。现在我要做相反的事情,将SSIS包从SQL Server保存到我的本地计算机。我在这里使用Microsoft文档:https://docs.microsoft.com/en-us/dotnet/api/microsoft.sqlserver.dts.runtime.application?view=sqlserver-2017
似乎没有任何方法可以保存到计算机。我看到了“加载”方法,但是我无法使它们起作用。我认为他们只是准备要上传到服务器的软件包,就像我之前的示例一样。是否可以通过相同的“ Application”类实现?
编辑:对于以后阅读此书的任何人:@Hadi的答案中的“ pkgIn”路径已经内置了“ MSDB”,因此,如果您需要“ \ MSDB \ packages”或随便,只要使用“ \ packages”
答案 0 :(得分:1)
您必须使用SaveToXml()
函数来实现。
app.SaveToXml("C:\Temp\myNewPackage.dtsx", pkg, null);
您可以参考此链接:
尝试使用类似的代码:
Package pkgIn = new Package();
pkgIn = app.LoadFromSqlServer("\\myNewPackage", "yourserver", null, null, null);
app.SaveToXml("C:\Temp\myNewPackage.dtsx", pkgIn , null);
有关从SQL Server加载程序包的更多信息,请参考以下链接: