sqlcmd将不会执行 – Claim Native Client未正确安装

我正在尝试使用sqlcmd来执行一些SQL脚本。

使用一个简单的查询testing命令,如:

sqlcmd -S HOSTNAME -d MYDATABASE -Q 'SELECT Names FROM Customers' 

sqlcmd似乎没有任何尝试连接到服务器,因为它显示此消息:

Sqlcmd:错误:连接失败。

SQL本机客户端安装不正确。 要解决此问题,请运行SQL Server安装程序

本地客户端大概是作为SQL Server安装程序的一部分进行安装的,可能是正确的。 我实际上在任何安装了SQL Server的机器上都会得到这个消息,试图使用sqlcmd,所以这不是安装被破坏的问题。

不幸的是,这个消息真的没有告诉我这个问题,所以我不知道真正的问题是什么。 我知道SQL本机客户端工作正常,因为VBScript能够对数据库执行SQL查询。

是否有一些额外的configuration需要使用sqlcmd?

我有这样的感觉,你的连接错误是服务器上的防火墙问题。 在服务器计算机上的Windows防火墙中,请确保TCP端口1433(或您select的那个)为传入连接打开。 如果您愿意,也可以约束SQL Server服务的规则,即\ MSSQL \ Binn \ sqlservr.exe。

端口不是由安装过程打开,也没有预定义的规则。 如果使用dynamic端口,则还必须为SQL Server浏览器打开UDP端口1434。

通过适当的防火墙调整,您应该能够连接。 我还想提到,在我的安装(SQL Server 2012),我不得不使用双引号的查询; 单引号导致一个讨厌的错误消息,如“意外的论点”。

 sqlcmd -S HOSTNAME -d MYDATABASE -Q "SELECT Names FROM Customers"