SQL文件在VSCode中无高亮、不自动格式化,需手动设置language mode为SQL、配置默认formatter(如cdsama.sql-formatter)并启用formatOnSave;数据库补全需通过SQLTools等插件手动建连;格式化风格由插件配置决定,如sql-formatter可设uppercase和indent。

SQL 文件没高亮、写完不自动格式化,先检查 language mode
VSCode 默认不会把 .sql 文件当成 SQL 语言处理,尤其你双击打开或新建文件时,右下角可能显示 Plain Text。这时候语法高亮、智能提示、格式化全失效。
实操建议:
- 点击右下角
Plain Text,选SQL(如果没看到,输入sql搜索) - 或按
Ctrl+K M(Windows/Linux) /Cmd+K M(macOS),然后输sql - 想永久生效?在
settings.json加这行:"files.associations": {"*.sql": "sql"}
装了插件但 Format Document 没反应,大概率是没配好 formatter
很多 SQL 插件(比如 SQL Formatter、vscode-sql-formatter)只提供格式化能力,但不自动注册为默认 formatter。VSCode 不知道该用谁来格式化。
实操建议:
- 确认已安装支持格式化的插件(推荐
SQL Formatter或Red Hat's SQL Language Support) - 打开命令面板(
Ctrl+Shift+P),运行Preferences: Configure Language Specific Settings...→ 选SQL - 填入:
"editor.defaultFormatter": "cdsama.sql-formatter"(以实际插件 ID 为准) - 同时建议开启:
"editor.formatOnSave": true,否则得手动按Shift+Alt+F
连接数据库后还是不能高亮/补全,别指望插件自动连上你的 localhost:5432
VSCode 本身不带数据库客户端功能,所谓“数据库连接插件”(如 Database Client、SQLTools)只是提供 UI 和协议层支持,它们不会读取你本地 psql 配置或 .env,更不会猜你用的是 PostgreSQL 还是 MySQL。
实操建议:
-
SQLTools要手动新建连接:右键资源管理器 →Create Connection→ 填 host/port/database/user/password - 连接成功后,只有在该连接下打开的查询编辑器(不是普通
.sql文件)才支持表名补全和字段提示 - 注意:连接信息明文存本地(
~/.sqltools/config.json),别放生产库密码 - 如果用 Docker 或 SSH 隧道,得先确保端口可达,插件不处理网络层转发
格式化后语句变错、关键字全大写、缩进乱套,问题出在 sql-formatter 的配置项
不同 formatter 默认风格差异极大:sql-formatter 默认把所有关键字转大写、用 2 空格缩进;而 pgFormatter(需本地安装)默认小写 + 4 空格,还支持 PostgreSQL 特有语法。
实操建议:
- 查清你装的 formatter 支持哪些配置项,比如
sql-formatter可在settings.json里加:"sqlformatter.uppercase": false - 缩进控制:
"sqlformatter.indent": " "(两个空格)或"\t"(Tab) - 如果用
pgFormatter,必须提前npm install -g pg-formatter或brew install pgformatter,插件只是调它命令行 - 格式化失败常见报错:
command 'sqltools.format' not found→ 插件没激活或 language mode 不对
最常被忽略的一点:格式化只作用于当前编辑器内容,不会跨文件解析 CREATE VIEW 依赖或 WITH 公共表定义。逻辑复杂时,别全信自动格式结果。










