sublime text 无法原生连接 sql server,必须依赖系统级 sqlcmd 工具与 sqltools 插件协同工作;90% 失败源于未安装或未配置 path 中的 sqlcmd,或 sqltools 中 driver 错填为 sqlserver 等非 mssql 值,且需启用 sql server 的 tcp/ip 协议并开放 1433 端口。

Sublime Text 本身不带 SQL Server 连接能力,必须靠 sqlcmd + 插件协同工作;90% 的失败都卡在 sqlcmd 没装、没进 PATH,或插件配置里 driver 写错。
确认系统已安装并可调用 sqlcmd
SQLTools 和 Sublime 的 Build System 都依赖系统级 sqlcmd,不是 Python 包,也不是插件自带的二进制。它来自 Microsoft 官方命令行工具包:
- Windows:安装 Microsoft Command Line Utilities(含
sqlcmd.exe),装完后在 CMD 或 PowerShell 中运行sqlcmd -?能输出帮助即成功 - macOS:先
brew install unixodbc,再brew install mssql-tools,然后验证sqlcmd --help - Linux(Ubuntu/Debian):按 官方文档 添加微软源,执行
sudo apt-get install mssql-tools unixodbc-dev,再试sqlcmd -S localhost -U sa是否提示输密码
关键点:装完必须把 sqlcmd 所在目录加进系统 PATH;Sublime 启动时读的是登录 shell 的环境变量,改完 PATH 后务必重启 Sublime,否则插件完全看不到 sqlcmd。
SQLTools 配置中 driver 必须为 mssql
SQLTools 官方明确要求 SQL Server 的连接类型字段必须填 mssql —— 不是 sqlserver、ms-sql、sqlsrv,更不能留空。填错会导致插件静默忽略该连接,补全、执行全部失效。
操作路径:Ctrl+Shift+P → 输入 SQLTools: Edit Connections → 编辑 JSON,确保类似这样:
{
"my_local": {
"type": "mssql",
"host": "127.0.0.1",
"port": 1433,
"user": "sa",
"password": "MyPass@123",
"database": "master"
}
}
注意:
-
host别写localhost(Windows 下默认走命名管道,sqlcmd连不上),换成127.0.0.1或真实 IP -
password含@、$等特殊字符无需转义,但整个值必须用双引号包裹 - 保存后,右键 .sql 文件 →
SQLTools: Connect to…→ 看状态栏是否出现绿色Connected to my_local
确保 SQL Server 已启用 TCP/IP 并开放 1433 端口
即使 sqlcmd 和 SQLTools 都配对了,连不上也大概率是服务端没开网络协议:
- 打开
SQL Server 配置管理器→ 展开SQL Server 网络配置→ 找到对应实例(如MSSQLSERVER)→ 右键TCP/IP→ 选择启用 - 右键
TCP/IP→属性→ 切换到IP 地址页签 → 拉到底部找到IPAll→ 清空TCP 动态端口,填入TCP 端口为1433 - 重启 SQL Server 服务(在 Windows 服务管理器中找
SQL Server (MSSQLSERVER)或你自定义的实例名) - 检查 Windows 防火墙是否放行了 1433 端口(入站规则)
验证方式:不用 Sublime,在终端直接跑 sqlcmd -S 127.0.0.1 -U sa -P 'your_password' -d master -Q "SELECT @@VERSION",能返回版本号才算真正通了。
最容易被忽略的是 PATH 和 TCP/IP 启用这两步——前者让 Sublime “看不见” sqlcmd,后者让 sqlcmd “够不着” SQL Server,中间任何一环断掉,都会表现为“点击执行没反应”或“连接超时”,而不是报具体错误。











