如何指定SQL Server 2016执行SQLCMD命令并解决实例定位错误
解决SQLCMD指定SQL Server 2016实例执行命令的问题
我需要执行命令:SQLCMD -d dbname -i sc.sql
来运行查询。由于同时安装了SQL Server 2019和2016版本,当前默认使用2019版本执行,但实际需要用2016版本执行。两个版本的数据库名称相同,当我添加实例名执行命令:SQLCMD -S .\MSSQLSERVER -d dbname -i sc.sql
时,出现如下错误:
Sqlcmd: 错误: Microsoft ODBC Driver 17 for SQL Server : SQL Server 网络接口: 定位服务器/实例时出错 [xFFFFFFFF]。
解决步骤:
确认SQL Server 2016的实例名称
默认实例名称为MSSQLSERVER,但如果是自定义命名实例,名称会不同。可通过「SQL Server配置管理器」查看:- 打开「SQL Server配置管理器」,定位到「SQL Server服务」
- 找到对应SQL Server 2016的服务,名称格式为
SQL Server (实例名),括号内即为实例名称 - 若服务名称是
SQL Server (MSSQLSERVER),则是默认实例;若为SQL Server (SQL2016)这类,则是命名实例
检查实例服务状态并执行正确命令
- 确保SQL Server 2016对应的服务处于运行状态,若未启动,右键选择「启动」
- 如果是默认实例,执行命令:
SQLCMD -S .\MSSQLSERVER -d dbname -i sc.sql - 如果是命名实例(比如实例名为SQL2016),执行命令:
SQLCMD -S .\SQL2016 -d dbname -i sc.sql
直接调用SQL Server 2016版本的SQLCMD程序
不同版本的SQLCMD.exe路径不同,直接指定路径调用可避免版本混淆:
SQL Server 2016的SQLCMD默认路径为:C:\Program Files\Microsoft SQL Server\130\Tools\Binn\SQLCMD.exe -d dbname -i sc.sql
(注:版本号130对应SQL Server 2016,2019对应150;若为命名实例,需添加-S .\实例名参数)
内容的提问来源于stack exchange,提问作者lady
相关产品推荐
相关产品推荐

