在SQL Server 2014中,我尝试使用命令行调用sql脚本:
~osql -U sa -P passwd -i script.sql
我收到一条错误消息: 用户' sa'登录失败 操作系统错误997重叠I / O操作正在进行中。
但是,当我以交互模式运行命令时:
~osql -U sa -i script.sql
它要求输入密码,命令成功。有人可以帮助我如何在没有用户干预的情况下纯粹从命令行运行sql脚本?
感谢。
答案 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
,以便获得包含问题输出的文本文件。