找不到sqlcmd.exe(SQL SERVER 2017)

时间:2019-12-04 13:53:26

标签: sql-server ssms sqlcmd ssms-2017

我遇到了有关sqlcmd的问题,

在计算机中有SSMS 2017,我可以在SSMS 2017中使用SQLCMD模式,但是我不能在命令提示符下调用sqlcmd

“'sqlcmd.exe'无法识别为内部或外部命令,可操作程序或批处理文件”

我找不到整台计算机中的SQLCMD.EXE。

因为我可以在SSMS中使用SQLCMD MODE,这是否意味着计算机中是否必须存在sqlcmd.exe?

非常感谢您,

3 个答案:

答案 0 :(得分:1)

您是否尝试将SQL SERVER路径添加到PATH的环境变量中?

要检查它,请在cmd上运行以下命令:

Path

Path exemple

这将为您显示变量路径。 如果没有这样的东西:

;C:\Program Files (x86)\Microsoft SQL Server\140\Tools\Binn\
;C:\Program Files\Microsoft SQL Server\140\Tools\Binn\
;C:\Program Files\Microsoft SQL Server\140\DTS\Binn\

您将无法执行sqlcmd。

SQLCMD对于在多个实例(例如批处理文件)中运行命令非常有用。 该命令的另一个优点是,您可以在参数-i中传递一个要执行的sql脚本,在参数-o中传递一个输出结果的文件。 然后,您可以使用'-v'选项添加变量参数。

这是一个非常强大的功能,我不知道为什么评论中的所有人都说相反。

(很抱歉我的英语是法语)

答案 1 :(得分:1)

  

因为我可以在SSMS中使用SQLCMD MODE,这是否意味着计算机中是否必须存在sqlcmd.exe?

显然不是。我只是通过运行

进行了测试
:!! powershell pause

在SSMS中以SQLCMD模式运行,并在Sysinternals Process Explorer中检查进程树:

enter image description here

看起来SSMS拥有自己的与SQLCMD兼容的解释器的实现。

从SSMS 18.0开始,SQLCMD是seperate download

The following tools are no longer installed with SSMS:
OSQL.EXE
DReplay.exe
SQLdiag.exe
SSBDiagnose.exe
bcp.exe
sqlcmd.exe

Deprecated and removed features in 18.0

答案 2 :(得分:0)

我的SQLCMD.EXE位于此处:

C:\ Program Files \ Microsoft SQL Server \ Client SDK \ ODBC \ 170 \ Tools \ Binn \ SQLCMD.EXE

您可以在此处下载:

https://msdn.microsoft.com/de-de/library/ms162773.aspx

https://docs.microsoft.com/de-de/sql/tools/sqlcmd-utility?redirectedfrom=MSDN&view=sql-server-ver15