sqltools快捷键没反应,需确认光标位于以分号结尾的完整语句内部,且不在注释、空行或字符串中;若仍无效,可用ctrl+shift+p手动执行sqltools: run current statement排查冲突。

SQLTools 快捷键按了没反应?先确认光标位置和语句完整性
快捷键 Ctrl+Alt+R(Windows/Linux)或 Cmd+Alt+R(macOS)只在满足两个硬性条件时才生效:光标必须落在**完整 SQL 语句内部**,且该语句**以分号 ; 结尾**。常见失效场景包括:
- 光标停在注释行(
--或/* */内)、空行、字符串中间,或语句末尾缺; - 语句被空行或注释隔开,VSCode 默认只识别“以分号或空行为界”的逻辑块
- 快捷键被其他扩展占用,可按
Ctrl+Shift+P手动执行SQLTools: Run Current Statement测试是否为冲突问题
vscode-database-client 的查询快捷键更直觉,但需注意语言模式
这个插件默认用 Ctrl+Enter 运行当前语句,Ctrl+Shift+Enter 运行整个文件,但前提是当前编辑器的语言模式必须设为 sql。如果打开的是 .txt 或未关联的文件,快捷键会静默失败。
- 右下角状态栏显示
Plain Text时,点击它 → 选择SQL;或按Ctrl+K M手动切换 - 插件不自动识别
.sql后缀,首次打开需手动设置一次语言模式 -
Ctrl+Enter只作用于光标所在“逻辑段”——若想执行多条,必须先选中(支持跨行),否则只跑第一条
连接成功后执行第一条 SELECT 却报 “No database selected”?
这是 MySQL 场景下最隐蔽的坑:连接配置里漏填 database 字段,或填了但没生效。VSCode 插件(如 cweijan 的 MySQL 扩展)不会自动切换到指定库,而是维持无库上下文。
- 检查
connections.json中是否明确写了"database": "your_db_name",不能为空字符串 - 即使连接面板显示绿色圆点,也得确认状态栏右下角显示的连接名后是否带库名(如
mysql://root@localhost:3306/myapp) - 临时补救:执行
USE myapp;再运行后续查询,但长期应修正连接配置
密码含特殊字符导致连接失败?URL 编码是刚需
MySQL 和 PostgreSQL 驱动底层用 URL 格式解析连接串,@、/、:、? 等字符必须编码,否则会被误判为协议分隔符。
- 密码
pass@123→ 必须写成pass%40123 - 密码
hello/world→ 写成hello%2Fworld - 工具推荐:浏览器地址栏粘贴
encodeURIComponent('your_password')快速生成编码结果
真实连上之后,很多人卡在“查不到表”——不是权限或网络问题,而是根本没指定数据库上下文,或者连对了实例却连错了库。这点在切换测试/生产环境时尤其容易忽略。











