Выполнение сценария SQLCMD из задачи выполнения процесса SSIS с переменными

У меня есть файл.sql со скриптами, которые включают элементы SQLCMD.

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

Мне не удалось выполнить его из "Выполнить задачу SQL ".

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

Исполняемый файл: C: \ Program Files \ Microsoft SQL Server \ 100 \ Tools \ Binn \ SQLCMD.EXE
Аргументы: -S сервер -U пользователь -P pass -i C:\ путь \ к \file.sql

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

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

Выполнить задачу процесса

Аргументы: -S сервер -U пользователь -P pass -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".

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

Дополнительная информация:
SQL Server 2008R2
Причина, по которой мне нужно, чтобы это были переменные, заключается в том, что я помещу "Задачу выполнения процесса" в "Для каждого цикла", чтобы иметь возможность выполнять все файлы.sql в папке.

1 ответ

Решение

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

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

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

Другие вопросы по тегам