VSCode中SQL文件无高亮或格式化失效,主因是未手动切换语言模式为SQL(右下角显示Plain Text时需点击选择),且未安装支持language server的插件(如SQLTools或mssql)并配置默认formatter;仅装高亮类插件无效。

VSCode 默认不带 SQL 高亮,装错插件或没切语言模式,90% 的“灰文本”问题就出在这儿。
SQL 文件右下角显示 Plain Text?必须手动切语言模式
VSCode 不会自动把 .sql 文件识别为 SQL 语言,哪怕你刚新建一个 query.sql,状态栏也可能还是 Plain Text。这时候所有高亮、补全、格式化都无效——不是插件坏了,是根本没激活语言服务。
- 点击右下角当前语言标签(比如
Plain Text),搜索并选SQL - 或按
Ctrl+K M(Windows/Linux)/Cmd+K M(macOS),输入sql回车 - 想永久绑定后缀:在
settings.json里加"files.associations": {"*.sql": "sql"} - 注意别选
MySQL或PostgreSQL模式来凑合——基础高亮用SQL就够,那些专用模式要配连接才生效,否则反而容易出错
装了插件还是没高亮?大概率装的是纯着色类扩展
名字带 Highlight、Syntax、Theme 的插件,只改颜色,不注册语言服务,也不提供补全和诊断。VSCode 看不到它们的语法定义,自然不会高亮。
- 真正起作用的插件必须能启动 language server,推荐两个:
SQL Server (mssql)(微软官方,轻量稳定)、SQLTools(支持多库,功能全) - 装完后打开
.sql文件,确认右下角已变成SQL,且命令面板(Ctrl+Shift+P)里能搜到SQLTools: Connect to Database或mssql: Toggle IntelliSense - 如果点了
SQL还是不亮,打开开发者工具(Developer: Toggle Developer Tools),看 Console 里有没有language server failed to start类报错
格式化不起作用?默认 formatter 没设对
VSCode 自身不格式化 SQL,必须靠插件,但装上不等于启用。很多用户按 Shift+Alt+F 没反应,就是因为 VSCode 不知道该调哪个插件。
- 先装一个带格式化能力的插件,如
SQL Formatter(作者 shufo)或vscode-sql-formatter(作者 bradymholt) - 打开命令面板 →
Preferences: Configure Language Specific Settings→ 选SQL→ 在弹出的settings.json片段里加:"editor.defaultFormatter": "shufo.vscode-sql-formatter"(注意 ID 必须和插件市场页面显示的一致,大小写、连字符都不能错) - 顺手加上:
"editor.formatOnSave": true,避免每次手动触发 - 如果格式化后关键字变小写,查插件设置里是否有
sqlformat.uppercase或类似选项;没有就换插件,别硬调
连上数据库才能字段级高亮和补全
仅靠语言模式或通用插件,VSCode 不知道你的表名、字段名、函数是否存在。所谓“输完 SELECT * 就提示字段”,必须走真实连接读取 schema。
-
SQLTools要先配置连接(侧边栏点 SQLTools 图标 →+ New Connection),哪怕只是本地SQLite文件;没连上,补全引擎压根不加载 -
mssql插件需开启:"mssql.enableIntelliSense": true,否则 server 不启动 - 连接信息明文存在
~/.sqltools/config.json,别填生产库密码 - 连接成功后,补全只在“查询编辑器”里生效(右键连接节点 →
New Query),普通.sql文件仍只有基础高亮
最常被忽略的一点:语言模式切换和 formatter 设置必须针对 SQL 语言本身做,而不是全局设置;一旦漏掉语言特定配置,哪怕插件装得再全,也只有一半功能能跑起来。


















