首页 > 解决方案 > Sqlcmd:错误:Microsoft ODBC Driver 11 for SQL Server:用户“sa”登录失败

问题描述

我正在尝试通过 perl 脚本使用“sa”用户执行一个存储过程

将此行保存在 perl 文件中并执行该 perl 文件

system("start /wait sqlcmd.exe -S serverName -U sa -P test@123 -d JSONdb -Q \"EXECUTE UPDATE_SP\" -o C:\\Temp\\log.txt");

==================================================== ============================

-S serverName :: 我要连接的sql server。

-U sa -P test@123 ::登录用户凭据

-d JSONdb:: 数据库名称。

\"EXECUTE update_JSONTable\" :: 执行存储过程的命令 [update_JSONTable]

-o C:\Temp\log.txt" :: 保存日志

标签: sqlsql-serverperl

解决方案


可能有以下三个原因:

  1. SQL Server(或混合)身份验证已禁用
  2. 命令中使用的密码错误
  3. 数据库[JSONdb]不可用

另一个原因可能与特殊字符转义有关。您的密码包含@,因此该参数也需要调整:

 -P test@123 =>  -P test\@123

推荐阅读