notepad++ v8.x 不支持旧版sql格式化插件,因架构不兼容和插件框架移除;可用插件仅sqlinform、coolformat、nppautoindent三款,需匹配x64/x86;推荐正则+tab组合技实现安全可控格式化。

Notepad++ 里没有真正意义上的“一键格式化 SQL”——不是你装错插件,是 v7.9+(尤其是当前主流的 v8.x x64 版)已彻底放弃对老式 SQL 插件的兼容支持。想靠点一下就排好复杂嵌套查询?得先绕过架构、语言模式、正则安全这三道坎。
SQL Beautifier 和 Poor Man's T-Sql Formatter 为什么点不动
这两个插件在 Notepad++ v8.x x64 下根本不会出现在菜单里,不是安装失败,是加载器被移除。v7.9 起官方停用旧版插件管理器(NppPluginList),而它们依赖该框架。即使手动把 SQLBeautifier.dll 扔进 plugins 目录,x64 版 Notepad++ 也完全无视它。
- 查菜单灰色不可点?大概率是架构不匹配:x64 Notepad++ 不能加载 x86 插件(或反之)
- 装完没反应?确认是否用了官网下载的默认 x64 安装包(v8.6.7 等),它不带兼容层
- 强行降级到 v7.8.9 x86 虽能跑 SQL Beautifier,但会丢失高 DPI 支持、UTF-8(无 BOM) 默认编码等现代特性
现在还能用的插件只有这三个,且必须配对架构
目前能在 v8.x 全版本稳定工作的插件仅剩三个,都需手动核对 x64 或 x86 后缀:
-
SQLinForm:作者持续维护,提供 Windows 命令行和插件双模式;插件版需去官网下载对应架构的.dll,放入plugins后重启,菜单在Plugins → SQLinForm → Format Selection -
CoolFormat:支持 SQL/JS/Java 等十多种语言;安装后必须进Plugins → CoolFormat → Settings手动把 Language 切成SQL,否则默认按 C 风格缩进 -
NppAutoIndent:不提供按钮,只接管Tab键;适合大文件(>5MB)和深度嵌套子查询,但需配合正则预处理才能达到“格式化”效果
不用插件也能接近一键:正则 + Tab 的可控组合技
这是目前最稳、无兼容风险、且不碰外部服务的方案,三步完成:
- 先确保语言设为
SQL(Language → SQL),否则括号不匹配、关键字不着色,后续全乱 - 打开
Search → Replace,勾选Regular expression:
– 查找:(FROM|WHERE|JOIN|ON|GROUP BY|ORDER BY|SELECT|INSERT INTO|UPDATE|DELETE FROM),替换为:\r\n$1
– 查找:(,)(?!\s*['"]),替换为:,\r\n(避免切开字符串内的逗号) - 全选代码,按
Tab键——NppAutoIndent会按语法层级缩进:SELECT子句缩进 2 级,WHERE内条件缩进 3 级,中文注释和单引号内容不受影响
为什么别用在线 SQL 格式化网站
粘贴即用看着省事,实际埋着两个硬伤:
- 安全风险:很多工具(尤其免费小站)会记录请求体,
WHERE user_id = 123456这类带业务 ID 的语句等于裸奔 - 长度限制:多数在线工具截断 >1000 行或 >200KB 的脚本,格式化后发现最后三段 SELECT 消失了
- 转义失效:
SELECT 'O''Reilly' AS name中的双单引号常被误判为字符串结束,导致换行错位甚至语法破坏
真正难处理的从来不是“怎么排版”,而是长事务脚本里混着注释、变量拼接、多层嵌套 WITH 和动态 SQL —— 这些地方,任何自动工具都会退让,最终还得人眼校验。











