Аргументы командной строки сценария SQL - PullRequest
1 голос
/ 26 января 2012

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

то есть ..

SQLCMD (предположим, что соединение в порядке ..) -V "25.01.2012" -i "ScriptFile.sql"

Как будет выглядеть структура ScriptFile.sql? Будет ли это начинаться с такой же, как и любая другая процедура ..?

Обычно я пытаюсь вызвать скрипт текстового файла с параметрами в качестве команды SQL. До сих пор я не смог найти ни одной статьи MSDN по этому вопросу.

Ответы [ 3 ]

6 голосов
/ 27 января 2012

ОК. Если кому-то все равно, все будет так ...

Файл SQL Script, использующий переменную, использует переменную следующим образом:

Обновить имя таблицы Set ColumnValue = $ (Param)

- Обратите внимание, что нет объявления, и формат параметра использует
$ (Param) вместо @Param как переменная ...

Командная строка выглядит практически одинаково. По какой-то причине переданное значение должно быть в одинарных кавычках в двойных кавычках, например:

SQLCMD -S Имя_сервера -d Имя_базы_данных -v Param = "'Param'" -i "ScriptFile.sql"

Используйте только двойные кавычки вокруг имени ScriptFile, Single в Double для параметров.

1 голос
/ 23 августа 2012

В соответствии с http://msdn.microsoft.com/en-us/library/ms188714.aspx вы можете использовать -v для установки переменной сценария.Это сработало для меня, и другие решения здесь не:

prune.sql: удалить из таблицы, где столбец = $ (Param)

и в DOS CMD или вpowershell: sqlcmd -S «Мой сервер» -v Param = 100 -i prune.sql

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

1 голос
/ 26 января 2012

USE:

sqlcmd -E -S <Your Server> -v test="Test String" -i file.sql

file.sql:

SELECT @test
...