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