使用 C# 与 SQL Integration Services 通信



我想导入和导出 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);
}

对于反向定向 - 您可以使用LoadPackageSaveToSQLServer方法。

最新更新