2016-06-27 1 views
0

У меня есть .sql-файл со сценариями, включающими элементы SQLCMD.Запуск сценария SQLCMD из SSIS Выполнение задачи процесса с переменными

Мне нужно, чтобы он запускался из пакета SSIS.

Мне не удалось выполнить его с помощью «Выполнение SQL Задача».

Согласно этому http://www.sqlservercentral.com/Forums/Topic818940-147-1.aspx я должен использовать "Выполнить процесс задач" с:

Executable: C: \ Program Files \ Microsoft SQL Server \ 100 \ Tools \ Binn \ Sqlcmd.exe
Аргументы: -S сервер -U пользователь -P pass -i C: \ path \ to \ file.sql

Это нормально работает.

Но мне нужны аргументы, чтобы включить переменную. Что я пробовал, он терпит неудачу.

Execute Process Task

Аргументы: -S сервер -U пользователь -P передать -i @ [User :: FileNameView]

ошибка:

[Execute Process Task] Error: In Executing "C:\Program Files\Microsoft SQL Server\100\Tools\Binn\SQLCMD.EXE" "-S server -U user -P pass -i @[User::FileNameView]" at "", The process exit code was "1" while the expected was "0". 

Мои вопросы is: Как включить переменную в строку Аргументы? Есть ли другой подход, который я должен принять?

Дополнительно:
SQL Server 2008R2
Причина мне это нужно, чтобы быть переменными, потому что я поставил «Выполнить Process Task» в «Для каждого контура», чтобы быть в состоянии выполнить все. sql-файлы в папке.

ответ

1

Я считаю, что вам нужно создать выражение именованные аргументы со значением:

"-S server -U user -P pass -i " + @[User::FileNameView] 

Вам может понадобиться сделать некоторый тип литья, если @[User::FileNameView] не является строкой.

+0

Это ошибка, которую я получаю при попытке: '[Выполнять задачу процесса] Ошибка: при выполнении« C: \ Program Files \ Microsoft SQL Server \ 100 \ Tools \ Binn \ SQLCMD.EXE "" "-S server -U user -P pass -i "+ @ [User :: FileNameView]" at "", код выхода процесса был «1», в то время как ожидалось «0» .' –

+1

Правильно ли оценивается выражение? –

+0

Арх - ты прав! Я раньше не использовал «Выполнять задачу процесса», поэтому я неправильно понял, что вы делаете с выражением *. Сейчас он работает правильно. Благодарю. –