프로그래밍 방식으로 사용 가능 패키지 열거
적용 대상: Azure Data Factory의 SQL Server SSIS Integration Runtime
Integration Services 패키지를 프로그래밍 방식으로 사용할 때 개별 패키지 또는 폴더의 존재 여부를 확인하거나 로드 및 실행할 수 있는 저장된 패키지를 열거할 수 있습니다. 네임스페이스의 Microsoft.SqlServer.Dts.Runtime 클래스는 Application 이러한 요구 사항을 충족하는 다양한 메서드를 제공합니다.
패키지 또는 폴더가 있는지 확인
저장된 패키지가 있는지 여부를 프로그래밍 방식으로 확인하려면 로드하고 실행하기 전에 다음 메서드 중 하나를 호출합니다.
스토리지 위치 | 호출할 메서드 |
---|---|
SSIS 패키지 저장소 | ExistsOnDtsServer |
SQL Server | ExistsOnSqlServer |
폴더가 있는지 여부를 프로그래밍 방식으로 확인하려면 해당 폴더에 저장된 패키지를 나열하기 전에 다음 메서드 중 하나를 호출합니다.
스토리지 위치 | 호출할 메서드 |
---|---|
SSIS 패키지 저장소 | FolderExistsOnDtsServer |
SQL Server | FolderExistsOnSqlServer |
사용 가능한 패키지 열거
저장된 패키지 목록을 프로그래밍 방식으로 가져오려면 다음 방법 중 하나를 호출합니다.
스토리지 위치 | 호출할 메서드 |
---|---|
SSIS 패키지 저장소 | GetDtsServerPackageInfos |
SQL Server | GetPackageInfos |
다음 샘플은 이러한 메서드의 사용을 보여 주는 콘솔 애플리케이션입니다.
예제(SSIS 패키지 저장소)
이 메서드를 GetDtsServerPackageInfos 사용하여 SSIS 패키지 저장소에 저장된 패키지를 나열합니다. SSIS 패키지 저장소에서 관리하는 기본 스토리지 위치는 파일 시스템과 MSDB입니다. 이러한 위치 내에 추가 논리 폴더를 만들 수 있습니다.
Imports Microsoft.SqlServer.Dts.Runtime
Module Module1
Sub Main()
Dim sqlFolder As String
Dim sqlServer As String
Dim ssisApplication As Application
Dim sqlPackages As PackageInfos
Dim sqlPackage As PackageInfo
sqlServer = "."
ssisApplication = New Application()
' Get packages stored in MSDB.
sqlFolder = "MSDB"
sqlPackages = ssisApplication.GetDtsServerPackageInfos(sqlFolder, sqlServer)
If sqlPackages.Count > 0 Then
Console.WriteLine("Packages stored in MSDB:")
For Each sqlPackage In sqlPackages
Console.WriteLine(sqlPackage.Name)
Next
Console.WriteLine()
End If
' Get packages stored in the File System.
sqlFolder = "File System"
sqlPackages = ssisApplication.GetDtsServerPackageInfos(sqlFolder, sqlServer)
If sqlPackages.Count > 0 Then
Console.WriteLine("Packages stored in the File System:")
For Each sqlPackage In sqlPackages
Console.WriteLine(sqlPackage.Name)
Next
End If
Console.Read()
End Sub
End Module
using System;
using Microsoft.SqlServer.Dts.Runtime;
namespace EnumeratePackagesSSIS_CS
{
class Program
{
static void Main(string[] args)
{
string sqlFolder;
string sqlServer;
Application ssisApplication;
PackageInfos sqlPackages;
sqlServer = ".";
ssisApplication = new Application();
// Get packages stored in MSDB.
sqlFolder = "MSDB";
sqlPackages = ssisApplication.GetDtsServerPackageInfos(sqlFolder, sqlServer);
if (sqlPackages.Count > 0)
{
Console.WriteLine("Packages stored in MSDB:");
foreach (PackageInfo sqlPackage in sqlPackages)
{
Console.WriteLine(sqlPackage.Name);
}
Console.WriteLine();
}
// Get packages stored in the File System.
sqlFolder = "File System";
sqlPackages = ssisApplication.GetDtsServerPackageInfos(sqlFolder, sqlServer);
if (sqlPackages.Count > 0)
{
Console.WriteLine("Packages stored in the File System:");
foreach (PackageInfo sqlPackage in sqlPackages)
{
Console.WriteLine(sqlPackage.Name);
}
}
Console.Read();
}
}
}
예제(SQL Server)
GetPackageInfos 메서드를 사용하여 SQL Server 인스턴스에 저장된 Integration Services 패키지를 나열합니다.
Imports Microsoft.SqlServer.Dts.Runtime
Module Module1
Sub Main()
Dim sqlFolder As String
Dim sqlServer As String
Dim sqlUser As String
Dim sqlPassword As String
Dim ssisApplication As Application
Dim sqlPackages As PackageInfos
Dim sqlPackage As PackageInfo
sqlFolder = String.Empty
sqlServer = "(local)"
sqlUser = String.Empty
sqlPassword = String.Empty
ssisApplication = New Application()
sqlPackages = ssisApplication.GetPackageInfos(sqlFolder, sqlServer, sqlUser, sqlPassword)
For Each sqlPackage In sqlPackages
Console.WriteLine(sqlPackage.Name)
Next
Console.Read()
End Sub
End Module
using System;
using Microsoft.SqlServer.Dts.Runtime;
namespace EnumeratePackagesSql_CS
{
class Program
{
static void Main(string[] args)
{
string sqlFolder;
string sqlServer;
string sqlUser;
string sqlPassword;
Application ssisApplication;
PackageInfos sqlPackages;
sqlFolder = String.Empty;
sqlServer = "(local)";
sqlUser = String.Empty;
sqlPassword = String.Empty;
ssisApplication = new Application();
sqlPackages = ssisApplication.GetPackageInfos(sqlFolder, sqlServer, sqlUser, sqlPassword);
foreach (PackageInfo sqlPackage in sqlPackages)
{
Console.WriteLine(sqlPackage.Name);
}
Console.Read();
}
}
}