sql server:在命令行中指定密码时出现错误997

时间:2014-09-25 07:16:27

标签: sql-server

在SQL Server 2014中,我尝试使用命令行调用sql脚本:

  

~osql -U sa -P passwd -i script.sql

我收到一条错误消息: 用户' sa'登录失败 操作系统错误997重叠I / O操作正在进行中。

但是,当我以交互模式运行命令时:

  

~osql -U sa -i script.sql

它要求输入密码,命令成功。有人可以帮助我如何在没有用户干预的情况下纯粹从命令行运行sql脚本?

感谢。

3 个答案:

答案 0 :(得分:3)

我在使用osql时遇到了997错误。看来osql没有正确报告错误,给出错误997而不是更有用的错误。据推测,这是因为它被弃用了。

在我的情况下,实际原因是服务器身份验证模式设置为“Windows身份验证模式”而不是“SQL Server和Windows身份验证模式”。这可以通过使用SQL Server Management Studio进行连接并进入连接的顶级属性,然后选择Security页面来更改。

此外,我必须通过安全性启用sa登录 - >登录 - > sa - >右键单击 - >对象资源管理器上的属性,然后使用“状态”页面将登录设置为“已启用”。

答案 1 :(得分:1)

这件事发生在我身上,而且密码错误。

答案 2 :(得分:0)

我也有同样的问题。我尝试了sqlcmd而不是osql,它给了我一个更容易理解的错误,在我的情况下问题是我使用了错误的密码用于那个特定的数据库。

我建议如果有人遇到类似的问题,请使用sqlcmd,这是osql命令的后续版本。还可以使用-o,以便获得包含问题输出的文本文件。