Можете ли вы запустить задачу SSIS из .net? - PullRequest
10 голосов
/ 06 августа 2009

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

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

Спасибо!

Ответы [ 2 ]

11 голосов
/ 06 августа 2009

Доступны опции для запуска пакета служб 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

0 голосов
/ 06 августа 2009

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

...