2013-12-18 3 views
0

У меня есть пакет ssis, где переменные задаются таблицей базы данных. Чтобы повторно использовать код, этот пакет будет запускаться еженедельно. Но также будет необходимо использовать его для запуска ad hoc. Теперь у меня есть код для запуска пакета из командной строки, и я знаю, как устанавливать имена переменных с помощью переключателя /Set \Package.Variables[User::FileName].Properties[Value];"aaab"Набор параметров пакета SSIS

Мой вопрос: существует ли способ установить предпочтения в отношении использования таблицы или пройденного стоимость? Или есть способ определить, что такое executer, это может помочь, если я могу определить, был ли он запущен из .net вместо задания и хранимой процедуры, то я могу сказать, что используется переданное значение?

+0

Вы можете иметь переменную (скажем, executer) и передавать разные значения в зависимости от того, как вызывается пакет. –

ответ

1

Есть много способов реализации конфигурации во время выполнения пакета (который является то, что вы делаете)

Вы не говоря уже о какой версии, но есть чтение этого:

http://msdn.microsoft.com/en-us/library/cc671625.aspx

Это примеры говорит конфигурации происходит в следующем порядке для SQL Server 2005:

Проектное конфигурации время применяются -command параметры командной строки применяются -Parent-пакеты

Это означает, что если ваши переменные назначены из стандартной таблицы конфигурации SSIS с использованием стандартных конфигураций, тогда любые параметры командной строки будут перезаписывать их впоследствии.

Считаете ли вы, что ваш пользователь должен будет установить SSIS, и пакет будет выполняться на их локальной машине, включая поездки с данными?

+0

Спасибо. Это 2008, сейчас пользователь заполнит информацию, нажмите кнопку. Приложение будет запускать SP, который либо вызовет xp_cmdShell, либо динамически создаст задание sql и запустит его. – Mike

1

Попробуйте взглянуть на System :: UserName. Вы можете написать выражение, которое установит User :: FileName в одну сторону, если это еженедельное задание, выполняемое DOMAIN \ SomeSpecialSQLServerAgentAccount, или иначе User :: FileName по-разному, если пакет выполняется вручную DOMAIN \ JohnQPublic.

Вы можете использовать переменные для обеих версий имени файла, например User :: FileNameFromTable и User :: FileNameFromCommandLine, а затем выбрать один или другой на основе System :: UserName.

Я боюсь, что не нашел способа повлиять на то, как устанавливается переменная (инициализация времени разработки, файл конфигурации, конфигурация командной строки, конфигурация свойств задания).

Смежные вопросы