我想导入和导出 SSIS 包 (.DTSX 文件(,在具有 C# 程序的 SQL Server 上。我找到了有关"集成服务"类的信息,但没有看到任何与导出或导入包相关的方法。这是正确的类吗?如果没有,我应该在哪里寻找?
https://learn.microsoft.com/en-us/dotnet/api/microsoft.sqlserver.management.integrationservices.integrationservices?view=sqlserver-2017
public ref class IntegrationServices
原来是用户@SMor建议的,Microsoft.SqlServer.Dts.Runtime 命名空间的应用程序类。
https://learn.microsoft.com/en-us/sql/integration-services/run-manage-packages-programmatically/enumerating-available-packages-programmatically?view=sql-server-2017
这两个对象为您提供了所需的大部分内容:
Application ssisApplication;
PackageInfos sqlPackages;
我可以获取该类的包列表。现在我只是在研究如何实际进行导入/导出。
包从 SQL 导出到文件的示例代码。
using Microsoft.SqlServer.Dts.Runtime;
public void pkgExtract()
{
// ...
Application app = new Application();
var events = new PackageEvents();
Package package = app.LoadFromSqlServer(packageName, server, etl.UserName, etl.Password, events);
// ...
string Package_File = @"C:\TempExportPkg.dtsx"
app.SaveToXml(Package_File, package, null);
}
对于反向定向 - 您可以使用LoadPackage
和SaveToSQLServer
方法。