VSCode需安装SQL插件(如mssql或SQLTools)才能启用语法高亮与智能补全,仅装纯着色插件无效;右下角须手动设为SQL模式,且language server需成功启动;执行SQL依赖外部数据库连接或sqlite3内存库;自定义关键字应通过插件配置项而非修改源码。

SQL 文件没高亮、没补全,大概率是没装对插件
VSCode 默认不带 SQL 语言支持,sql 文件只是按纯文本渲染。你看到的“没颜色”“敲 SELECT 不提示”不是配置问题,而是根本没激活 SQL 语言模式。
必须装一个能注册 sql 语言服务的插件,且要确认它实际生效了:
- 推荐装
SQL Server (mssql)(微软官方,轻量、稳定)或SQLTools(功能更全,支持多数据库) - 装完后打开任意
.sql文件,看右下角状态栏——如果显示Plain Text,点它,手动选SQL;之后 VSCode 会记住该后缀关联 - 别装名字带 “Highlight” 或 “Syntax” 的纯着色插件,它们只改颜色,不提供补全、诊断、执行能力
补全不工作?检查 language server 是否启动成功
SQLTools 和 mssql 都依赖后台 language server 提供智能提示。常见现象是:文件有高亮,但输 FROM 后不列表名,或者 SELECT * 没字段建议——这基本等于 server 没跑起来。
- 打开命令面板(
Ctrl+Shift+P),运行Developer: Toggle Developer Tools,切到 Console 标签,看有没有SQLTools或mssql的报错,比如connection refused或spawn ENOENT -
mssql插件默认不启动 server,需在设置里开:"mssql.enableIntelliSense": true -
SQLTools需先配置连接(哪怕只是 SQLite 本地文件),否则补全引擎不加载;配置入口在侧边栏SQLTools图标 → “+ New Connection”
想直接执行 SQL?别依赖插件“一键运行”,先理清执行边界
VSCode 本身不执行 SQL,所有“运行”功能都靠插件调外部工具(如 psql、mysql、sqlcmd)或连接数据库服务。这意味着:
-
SQLTools的“Execute Query”按钮,要求你已配好有效连接,且目标数据库服务正在运行 -
mssql插件只支持 Microsoft SQL Server,连 PostgreSQL 或 MySQL 会直接失败,错误信息通常是Failed to connect to server - 没有数据库时想试语法,可用 VSCode 内置的 Task +
sqlite3命令行:建一个.vscode/tasks.json,用sqlite3 :memory: -init ${file}快速跑内存库
自定义语法和关键字?别动 language-configuration.json
有人搜“VSCode SQL 自定义关键字”,然后去改插件里的 language-configuration.json,结果更新插件就覆盖了,或者改错路径根本无效。
真需要扩展关键字(比如加公司内部函数名),唯一可靠方式是用插件提供的机制:
-
SQLTools支持在连接配置里加"customKeywords"数组,写进connections.json -
mssql不开放自定义关键字,但可通过"mssql.intelliSense.customKeywords"设置项追加(注意是用户设置,不是插件源码) - 所有自定义都只影响补全,不影响语法校验——SQL 语法错误仍由数据库返回,VSCode 不做静态解析
复杂点在于:不同插件对“SQL 方言”的处理粒度很粗。比如你写的是 Spark SQL,但插件只认标准 ANSI SQL,那 LATERAL VIEW 这种关键字就永远不会被识别。这时候与其硬改配置,不如接受“补全有限”,把重点放在连接真实环境后获取准确反馈。










