Динамическое изменение задания на работу - PullRequest
0 голосов
/ 02 апреля 2012

Я знаю, как динамически создавать работу из этого create-sql-server-job-automatic

Проблема, с которой я столкнулся при использовании этого метода, заключается в том, чтобы удалить все этиСоздаваемые задания. То, что я ищу, - это способ передачи параметра в задание или динамическое изменение шага задания.

Справочная информация У меня есть ряд заданий служб SSIS, для которых требуется тестер.запустить.Я был застрелен при создании веб-страницы для вызова службы WCF, которая находится на сервере БД для выполнения пакета.Я не могу использовать xp_cmdshell.Поэтому третьим вариантом был вызов пакета через задание sql.Теперь, в идеале, я могу создать одну работу для каждого пакета, но мне нужна одна работа, в которой я могу передать имя пакета, файл конфигурации и, возможно, некоторые динамические переменные.

Просмотр этого поста Вызов пакета служб SSISиз хранимых процедур в SQL Server 2008 Я вижу, как создать динамический пакет, опять же проблема заключается в очистке заданий.

Ограничения Причина, по которой я иду по дорогединамическое создание задания является результатом следующих ограничений

The testers do not have Sql installed on there machine so they do not have access
to the BIDS environment nor DTEXEC

For reasons not completely logical I am restricted from using c# and building a 
WCF service that would call the package through code

I can not use xp_cmdshell due to permission and security issues.

Теперь, если есть лучший способ справиться с этим без Sql Jobs, я открыт для такой возможности, но главная цель - создать форму (в Интернете или Windows), чтобы тестировщик мог выбрать пакет, запустить его и посмотреть внутренние журналы запуска пакета, которые мы записали.

Ответы [ 2 ]

3 голосов
/ 02 апреля 2012

Для начала я предложил «более чистую» версию о том, как решить вопрос, который вы связали.Если идти оттуда, то это всего лишь маленький шаг: sp_add_job , где вы найдете объяснение для @delete_level

Value Description
----- -----------
0     Never
1     On success
2     On failure
3     Always

Короче говоря, если вы хотите, чтобы рабочие места очищались послесами используйте @delete_level 1 или 3 в соответствии с вашими потребностями.

0 голосов
/ 03 апреля 2012

Вы, похоже, перепутали два вопроса здесь, но поскольку вашим реальным приоритетом является выполнение пакетов, почему бы не использовать dtexec или dtexecui ? Ваши тестеры могут легко встроить их в тестовый скрипт, и это кажется более простым решением, чем использование заданий.

Если это невозможно по какой-либо причине, я думаю, вам придется точно объяснить, какие у вас есть ограничения и почему (возможно, в новом вопросе). Запускать пакеты обычно довольно просто, но кажется, что у вас нет полностью свободной руки для реализации того, что вы хотите.

...