SQLCmd Параметр пароля с запятой

У нас есть SQL-сервер, для которого пароль содержит comma (','), Так как мы используем то же самое в SQLCmdпроцесс не проходит. Пожалуйста, найдите запрос, который мы используем ниже

SQLCmd -U%1 -P%2 /S%servername% /dDbName -Q"EXEC sp_test null, 'DbName', '\ProcessLog\', 'STORE'" >> %NB4%\ProcessLog.log

Строка передается из другого командного файла.

Но пароль содержит запятую (','), поэтому процесс не может подключиться к SQL Server.

Есть ли способ добавить escape-символ в параметрах? Пробовал использовать двойные кавычки ('' '), но не повезло. Любая помощь будет высоко ценится.

1 ответ

Решение

Я нашел решение для этого. поскольку comma был там в passwordчасть после comma рассматривался как третий параметр, и поскольку первый параметр не соответствовал действительному паролю, соединение не устанавливалось. Вот решение для этого. Работал отлично для меня.

IF "%3" NEQ "" GOTO ThreeParm
IF "%3" == "" GOTO TwoParm
:ThreeParm
SQLCMD -U%1 -P%2,%3 /S%servername% /dTestDB -Q"EXEC sp_test null, 'TestDB', '\Folder\', 'STORE'" >> %NB4%\Folder.log
:TwoParm
SQLCMD -U%1 -P%2 /S%servername% /dTestDB -Q"EXEC sp_test null, 'TestDB', '\Folder\', 'STORE'" >> %NB4%\Folder.log
Другие вопросы по тегам