SQLTools连接配置默认存于项目根目录下的.vscode/sqltools.json文件,需手动创建并按JSON数组格式填写,含name、driver、host等字段,密码特殊字符须URL编码,database字段不可为空。

VSCode 本身不运行 SQL 脚本,必须装对扩展、配好连接、手动激活,三者缺一不可;漏掉任一环节都会静默失败或报 No active connection found。
SQLTools 连接配置写在哪儿?别信图形表单
SQLTools 的连接信息默认存在项目根目录下的 .vscode/sqltools.json,不是用户设置里,也不是侧边栏点几下就存好了。GUI 表单容易漏填 database 字段(尤其 PostgreSQL),导致连上也查不了表。
- 手动新建
.vscode/sqltools.json,内容结构必须是数组:[{ "name": "mydb", "driver": "MySQL", "host": "127.0.0.1", "port": 3306, "database": "testdb", "username": "root", "password": "pass%40123" }] - 密码含
@、/等字符,必须 URL 编码,否则连接直接被截断 - MySQL 8.0+ 用户若用
caching_sha2_password认证,会卡在“Connecting…”——临时切回mysql_native_password更稳
为什么按 Ctrl+Alt+R 没反应?光标位置决定一切
Ctrl+Alt+R(Win/Linux)或 Cmd+Alt+R(macOS)只执行“当前语句块”,不是整文件,也不是任意位置都生效。
- 光标必须落在以分号
;结尾的完整语句内部(比如SELECT * FROM users;的任意位置) - 不能停在注释行(
--或/* */内)、空行、字符串中间,否则报Query is empty - 想执行多条?先全选(
Ctrl+A),再按快捷键;否则只跑光标所在逻辑块(以分号或空行为界) - 快捷键冲突?用
Ctrl+Shift+P→ 输入SQLTools: Run Current Statement手动触发测试
mssql 扩展执行 .sql 文件要特别注意 GO 和编码
SQL Server 场景下,mssql 扩展比 SQLTools 更严格:它不认分号分隔,只认独占一行的 GO,且对本地环境和编码极其敏感。
-
GO必须独占一行,前后不能有空格、缩进、注释,否则整个脚本卡住不动 - 首次运行会自动下载
sqltoolsserviceCLI,公司网络常因代理失败——需手动下载并配置sqltools.servicePath到用户设置 - 中文乱码?不是文件编码问题,而是连接层没设
charset=utf8mb4(MySQL)或client_encoding=utf8(PostgreSQL);VSCode 文件本身必须是 UTF-8 无 BOM - 大结果集(>1000 行)默认截断,需提前在设置里调高
mssql.maxRows
状态栏右下角那个图标才是唯一可信信号
侧边栏显示连接名 ≠ 已连接;右键点了 Connect ≠ 成功;甚至刚弹出“Connected”提示也可能只是握手成功、未激活上下文。唯一能信的,是状态栏右下角出现数据库图标 + 连接名(如 mydb@localhost)。
切换 Git 分支、重启 VSCode、打开新工作区后,这个状态全部丢失,必须重新 Connect —— 这是最容易被忽略、却导致后续所有查询白忙活的一环。


















