应安装 Microsoft 官方的“SQL Server (mssql)”扩展,确认 VSCode ≥ 1.60;Windows 可直接使用,macOS/Linux 需额外安装对应驱动;连接字符串须严格按格式填写,注意端口、认证模式、权限及超时设置。

SQL Server 扩展该装哪个
VSCode 官方市场里叫 “SQL Server” 的扩展有好几个,但真正能连上 SQL Server 并执行查询的,只有 Microsoft 官方维护的那个,名字是 SQL Server (mssql)。别选错成 SQL Server Compact/SQLite Toolbox 或其他带 “SQL Server” 字样但实际不支持 T-SQL 连接的扩展。
安装前确认 VSCode 版本 ≥ 1.60;Windows/macOS/Linux 都支持,但 Linux 需额外装 unixodbc 和 mssql-tools(macOS 同理需 msodbcsql17)。
- Windows 用户:装完扩展基本就能用,驱动已内置
- macOS 用户:运行
brew tap microsoft/mssql-release && brew install msodbcsql17 mssql-tools - Linux 用户:按官方文档装对应版本的
unixodbc-dev和msodbcsql17,否则连接时会报ODBC Driver 17 for SQL Server not found
连接字符串怎么写才不报错
新建连接时填的不是“服务器名”,而是完整的连接字符串(Connection String),格式必须严格。最简可用形式是:
Server=localhost,1433;Database=master;User Id=sa;Password=your_password;
常见错误点:
-
localhost在 Docker 或远程部署时可能不通,换成127.0.0.1或具体 IP;SQL Server 默认端口是1433,如果改过,必须显式写成Server=xxx,15000 - Windows 身份验证不能直接用,得切到
SQL Server Authentication模式,并确保sa账户已启用、密码不为空 - 数据库名写错(比如写成
Database=mydb;但实际库不存在),会导致连接成功但后续查询报Cannot open database - 密码含特殊字符(如
@、/)要 URL 编码,例如Password=pass%40123
连接后执行查询没反应或报“Query execution timeout”
不是连不上,而是默认查询超时太短(30 秒),尤其在首次连接、远程服务器慢、或执行 SELECT * FROM huge_table 时容易触发。
解决方法:打开 VSCode 设置(Ctrl+,),搜索 mssql.queryTimeout,把值改成更大的数字,比如 300(单位秒);或者在连接配置里加参数:
Server=localhost,1433;Database=master;User Id=sa;Password=xxx;Connection Timeout=300;
另外注意:SQL Server (mssql) 扩展不支持连接池复用,每次新查询都新建连接,频繁操作大结果集时建议加 TOP 1000 限制返回行数,避免客户端卡死。
为什么连上了却看不到数据库列表或表结构
这是权限问题,不是扩展故障。VSCode 的 mssql 扩展依赖用户账号对 master 数据库有 VIEW ANY DATABASE 权限,否则左侧“SERVERS”面板里只显示当前登录所用的数据库(比如只看到 master),其他库不展开。
临时解决(开发环境):
USE master; GO GRANT VIEW ANY DATABASE TO [your_login]; GO
更安全的做法是:用具备 sysadmin 角色的账号连接一次,手动展开所有库,之后再切回普通账号——因为扩展会缓存元数据,只要缓存没清,普通账号也能看到之前加载过的库结构。
这个细节很容易被忽略:连得上 ≠ 看得全,权限和缓存共同决定左侧资源管理器的内容是否完整。









