Подтвердить что ты не робот

Вы можете запустить SSIS-задачу из .net?

У меня была запланированная задача агента sql, которая запускает пакет SSIS. Я хочу иметь возможность запускать пакет SSIS из .net. Есть ли способ запустить пакет SSIS напрямую или хотя бы запустить задачу агента SQL, которая, в свою очередь, будет запускать пакет SSIS.

Если это помогает для веб-приложения .net 3.5, написанного на С#

Спасибо!

4b9b3361

Ответ 1

Параметры, доступные для запуска пакета SSIS, -

  • Программный запуск программы с использованием объектной модели SSIS. Это подробно обсуждается в Books Online здесь.

Пример:

using System;
using Microsoft.SqlServer.Dts.Runtime;

namespace RunFromClientAppCS
{
    class Program
    {
        static void Main(string[] args)
        {
            string pkgLocation;
            Package pkg;
            Application app;
            DTSExecResult pkgResults;

            pkgLocation = "<package path>\CalculatedColumns.dtsx";
            app = new Application();
            pkg = app.LoadPackage(pkgLocation, null);
            pkgResults = pkg.Execute();

            Console.WriteLine(pkgResults.ToString());
            Console.ReadKey();
        }
    }
}
  • Запустите процесс DTEXEC.EXE. DTEXEC - это утилита командной строки для выполнения пакетов SSIS. См. Его параметры командной строки здесь.

  • Использовать агент SQL. Вы можете настроить задание агента для запуска своего пакета (либо делать это вручную заранее, если пакет статичен, либо программно с использованием SMO или с использованием хранимых процедур SQL непосредственно перед запуском пакета), а затем запускать его программно с помощью SMO или sp_start_job.

  • Используйте другую утилиту для запуска DTEXEC для вас.

  • Создайте собственное приложение, которое будет запускать пакет (используя OM, как описано в методе # 1, или используя DTEXEC, как в методе # 2). Выставляйте его как веб-службу или класс DCOM, вызывайте эту службу из своей программы.

  • Создайте свой собственный:)

Ссылка: Программный пакет SSIS

Ответ 2

Да. Загляните в пространство имен Microsoft.SqlServer.Dts.Runtime. Класс Package предоставит методы его запуска.