ctrl+alt+r没反应不是快捷键失效,而是未连接成功、光标不在完整语句内(须以分号结尾)、文件语言模式非sql、或处于注释/空行/字符串中。

SQLTools 连 PostgreSQL 为什么按 Ctrl+Alt+R 没反应
不是快捷键失效,而是根本没连上或语句没被识别。SQLTools 默认不监听 Ctrl+Enter,必须用 Ctrl+Alt+R(Windows/Linux)或 Cmd+Alt+R(Mac)执行当前语句——但前提是光标落在完整语句内,且该语句以分号结尾。
- 语句跨多行?选中后手动右键 → “Run Current Statement” 更可靠
- 光标停在注释里、空行或字符串中间?
Ctrl+Alt+R会静默忽略 - 连接未激活?侧边栏 SQLTools 图标下连接名旁无绿色圆点,说明未就绪
- 文件语言模式不是
sql?右下角状态栏检查,点开手动选“SQL”
vscode-mssql 和 SQLTools 的快捷键能共存吗
能,但必须手动隔离作用域,否则 mssql.runQuery 和 sqltools.runCurrentStatement 会互相覆盖。
- 在
keybindings.json中为不同语言绑定不同命令:"when": "editorTextFocus && editorLangId == 'sql' && !mssqlConnected"排除 mssql 场景 - PostgreSQL 用户建议禁用 vscode-mssql 插件,它会劫持
.sql文件关联并干扰驱动加载 - 若同时用 SQL Server 和 PostgreSQL,优先用 SQLTools + 对应 Driver,统一管理更稳
SQL 格式化总把 WHERE 换行搞乱,怎么 fix
别用 Prettier,它压根没 SQL 解析器。VS Code 自带格式化对 SQL 支持极弱,关键词大小写、括号缩进全靠猜。
- 装
SQL Formatter(by shengchen),启用后右键 → “Format Document With…” → 选它 - 关键配置加到
settings.json:"sqlformatter.keywordCase": "upper","sqlformatter.lineLength": 120 - 避免全局启用:只对
.sql文件生效,在设置里搜 “files.associations”,加"*.sql": "sql"
执行结果乱码或只显示一行,是不是编码问题
大概率是,尤其在中文环境或从旧系统导出的脚本里。VS Code 默认用 UTF-8,但 PostgreSQL 客户端驱动可能按系统 locale 解码。
- 确认文件保存编码:右下角点击编码 → “Reopen with Encoding” → 选
UTF-8 - 连接配置里加
"encoding": "utf8"字段(部分 Driver 支持,如SQLTools PostgreSQL Driver) - M1/M2 Mac 用户若仍乱码,换用
PostgreSQL by Chris Kolkman插件,它自带 libpq 二进制,绕过系统级编码冲突











