Можно ли выполнить задачу SSIS из .NET?

Когда Вы используете VARIABLE = value, если value на самом деле ссылка на другую переменную, то значение только определяется, когда VARIABLE используется. Это лучше всего проиллюстрировано с примером:

VAL = foo
VARIABLE = $(VAL)
VAL = bar

# VARIABLE and VAL will both evaluate to "bar"

, Когда Вы используете VARIABLE := value, Вы получаете значение value , как это теперь . Например:

VAL = foo
VARIABLE := $(VAL)
VAL = bar

# VAL will evaluate to "bar", but VARIABLE will evaluate to "foo"

Используя VARIABLE ?= val средства, что Вы только устанавливаете значение VARIABLE , если VARIABLE уже не установлен. Если это уже не установлено, установка значения задерживается, до VARIABLE используется (в качестве в примере 1).

VARIABLE += value просто добавляет value к [1 113]. Фактическое значение [1 114] определяется, как это было, когда это было первоначально установлено, с помощью или = или :=.

10
задан ArchieVersace 6 August 2009 в 08:24
поделиться

2 ответа

Для запуска пакета SSIS доступны следующие параметры -

  • Запустить пакет программно с использованием объектной модели SSIS. Это подробно обсуждается в электронной документации здесь .

Пример:

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

11
ответ дан 4 December 2019 в 01:02
поделиться

Да. Посмотрите в пространство имен Microsoft.SqlServer.Dts.Runtime .

0
ответ дан 4 December 2019 в 01:02
поделиться