无法通过批处理文件使用SQLCMD连接到SQL Server

Tra*_*K76 2 sql-server batch-file sqlcmd

我正在安排Windows中的任务每晚连接到一个场外SQL Server以运行查询并将结果保存为.CSV文件.我可以使用SSMS连接到SQL Server而没有任何问题.我可以在命令提示符下使用SQLCMD手动连接到SQL Server,完全没有问题.我的问题是我不能在批处理文件中使用SQLCMD.我正在使用的语法是......

sqlcmd -S ServerName\InstanceName -d DatabaseName -U UserName -P Password

如果我手动将其输入我的命令窗口,它就像一个冠军.

如果我尝试使用批处理文件进行连接,则会收到错误消息"用户'UserName'的消息为"Msg 18456,状态1,服务器ServerName\InstanceName,行1登录失败".

我也尝试右键单击批处理文件并以管理员身份运行但没有成功.预先感谢您的帮助.

特拉维斯

UPDATE

我刚刚发现,如果从批处理文件中取出-P Password参数,系统将提示您输入密码.输入密码后,我已成功登录.从批处理文件将密码传递给SQL服务器是否有限制?由于这是一个不在我们网络上的异地服务器,我无法使用Windows身份验证.

Dav*_*man 8

我有一个类似的问题,当手动键入时,sqlcmd在命令窗口中工作,但不在批处理文件中.

我解决的是我的密码包含%.在批处理文件中,这是一个特殊字符,它没有被回显到命令窗口.

解决方案是使用%%来逃避它.