Navicat连SQL Server失败主因是缺sqlncli_x64驱动,需运行安装目录下的sqlncli_x64.msi并重启;SSMS中sa账号默认禁用,须手动启用;SQL Prompt提供实时语法校验、智能CTE提取、语义级格式化及元数据刷新功能。

SQL Server连不上?Navicat报[IM002]不是配置错,是缺驱动
Navicat Premium 15 默认不带 SQL Server 的原生驱动,装完就直接连失败,错误里那句“未发现数据源名称”其实是在说:系统根本没见过 sqlncli_x64 这个驱动。这不是用户名密码问题,重试十次也没用。
- 去 Navicat 安装目录(比如
D:\Navicat Premium 15)找sqlncli_x64.msi,双击安装——别跳过这步,官网下载的独立驱动包反而容易版本不匹配 - 装完必须重启 Navicat,SSMS 里查到的主机名格式是
服务器名\实例名(如DESKTOP-ABC\SQLEXPRESS),不能只填 IP 或服务器名 - 选“SQL Server 验证”时,
sa账号默认禁用,得先在 SSMS 里右键登录名 → 属性 → 状态 → 把“登录”设为“启用”
SSMS 写 SQL 总手抖?IntelliSense 不报语法错,SQL Prompt 才真能拦住低级失误
SSMS 自带的 IntelliSense 只认对象名(表、列),但写成 SELEC * FROM users 或漏掉 WHERE 后的括号,它完全没反应。而 SQL Prompt 是边打边校验:关键字拼错、括号不闭合、GROUP BY 漏字段,光标一移过去就标红波浪线。
- 安装前务必关掉所有 SSMS 实例,否则提示
Quit applications卡死在最后一步 - 激活时改
hosts文件(路径:C:\Windows\System32\drivers\etc\hosts),加一行127.0.0.1 licensing.red-gate.com,否则启动就弹未授权警告 - 首次加载元数据会卡顿几秒——它在后台扫描整个数据库的表结构、索引、约束,不是卡死,等完就能补全
sys.dm_exec_query_stats这种动态视图了
嵌套太深像俄罗斯套娃?SQL Prompt 的重构不是格式化,是语义级降维
把五层 SELECT ... FROM (SELECT ... FROM (SELECT ...)) 手动拆成 CTE,容易漏字段或改错别名。SQL Prompt 的 Extract as CTE 功能会自动提取子查询、生成唯一 CTE 名、修正所有外层引用,比复制粘贴安全得多。
- 光标停在子查询开头括号处,按
Ctrl+Shift+R→ 选Extract as CTE,它不会瞎起名,而是按上下文推断(比如含user_id就叫users_with_status) - 对
UNION ALL块批量加注释,用Surround With→Comment Block,比手动敲/* */快,且自动对齐 - 慎用
Convert to EXISTS:它能把IN子句转成EXISTS,但若子查询含TOP 1或聚合,转换后逻辑可能变——得自己核对执行计划
格式化规则一调就翻车?关键不是缩进,是JOIN顺序和WHERE分组逻辑
很多人以为格式化就是调空格和换行,但 SQL Prompt 的真正价值在语义分组:它默认把 ON 条件紧贴 JOIN 行,把过滤型 WHERE 和关联型 WHERE(比如 LEFT JOIN ... WHERE t2.id IS NULL)自动分开缩进,一眼看出哪些条件影响了连接结果。
- 在
SQL Prompt → Options → Formatting → Styles里关掉Capitalize keywords,否则count(*)会被强制改成COUNT(*),跟团队规范冲突 -
Format Selection(Ctrl+K, Ctrl+Y)比全文件格式化更安全,尤其处理带GO批处理的脚本时,全选格式化可能把GO插到语句中间导致语法错 - 导出格式规则为 XML 文件,放到团队共享目录,所有人导入后,
ORDER BY id, name就不会有人写成ORDER BY id ,name(逗号前多空格)
最常被忽略的是元数据刷新——改了表结构、加了新索引,SQL Prompt 不会自动感知,得手动按 Ctrl+Shift+R 刷新缓存,否则补全列表里还躺着已删的列名。

















