使用SQLCMD执行数据库脚本时SQL Server连接失败求助
SQLCMD连接SQL Server失败的排查与解决方法
1. 修正实例名称与命令参数
- 当前命令里的
-S MachineName\DatabaseName格式错误:-S参数指定的是服务器/实例名,并非数据库名。数据库名需要用-d参数单独指定。 - 正确命令格式示例:
# 命名实例+指定目标数据库 sqlcmd -S MachineName\InstanceName -d TargetDatabase -i "D:/sqlscript.sql" # 默认实例(实例名为MSSQLSERVER)可简化为机器名/IP sqlcmd -S MachineName -d TargetDatabase -i "D:/sqlscript.sql" - 若使用SQL Server身份验证,需追加
-U 用户名 -P 密码参数;Windows身份验证默认无需额外参数。
2. 验证SQL Server实例状态
- 打开
services.msc服务管理器,找到对应SQL Server实例的服务(命名实例显示为SQL Server (InstanceName),默认实例为SQL Server (MSSQLSERVER)),确认服务处于正在运行状态,未启动则右键启动。
3. 配置SQL Server网络连通性
- 开启远程连接:通过SSMS连接实例后,右键实例→属性→连接,勾选「允许远程连接到此服务器」。
- 启用TCP/IP协议:打开SQL Server配置管理器→SQL Server网络配置→对应实例的协议,确保TCP/IP已启用;右键TCP/IP→属性→IP地址,确认目标IP的TCP端口(默认1433)已启用,且防火墙允许该端口的入站连接。
4. 测试基础网络连通性
- 执行
ping MachineName测试目标服务器是否可达,远程服务器需确保网络无阻断。 - 执行
telnet MachineName 1433(默认端口)测试端口是否开放,不通则检查服务器防火墙、网络组策略等。
5. 确认ODBC驱动兼容性
- 验证ODBC Driver 17 for SQL Server是否正确安装,且与目标SQL Server版本兼容(SQL Server 2008及以上版本通常支持该驱动)。
内容的提问来源于stack exchange,提问作者mnu-nasir
相关产品推荐
相关产品推荐

