VS Code 的 mssql 扩展仅是客户端工具,无法运行 SQL Server;真正执行 SQL 需另行准备实例——本地安装、Docker 容器、Azure SQL 或 Fabric SQL,各自连接方式、身份验证类型(Windows/SQL Server/Azure AD)及权限限制均不同,选错即连接失败。

能直接管理,但必须分清场景——本地容器、Azure SQL、Fabric SQL 和本地安装的 SQL Server,连接方式和限制完全不同。
vscode-mssql 扩展不等于 SQL Server 安装包
很多人误以为装了 mssql 扩展就能“运行 SQL Server”,其实它只是个客户端工具。真正执行 SQL 的数据库实例得另外准备:
- 本地已安装 SQL Server(如 2022 Developer Edition)→ 连接
localhost或命名实例 - Docker 容器中的 SQL Server → 扩展自带“Local SQL Server Container”向导,自动拉取镜像并启动(默认 SQL Server 2025)
- Azure SQL 数据库 → 需提前在 Azure 门户开通,并配置服务器级防火墙放行你的公网 IP
- Microsoft Fabric SQL 数据库 → 必须用 Azure AD 登录,且工作空间需有 Fabric Capacity 权限
没实例,mssql 扩展连 SELECT 1 都会报 Failed to connect to server。
连接时 authentication type 选错就卡死
VS Code 连接 SQL Server 的身份验证类型不是随便选的,它直接影响能否连上:
- Windows Authentication:仅 Windows 系统可用,且当前用户必须有 SQL Server 登录权限;Linux/macOS 不支持
- SQL Server Authentication:需显式提供
username和password,适用于所有平台,但账号必须已在 SQL Server 中创建并启用 - Azure Active Directory:用于 Azure SQL 和 Fabric SQL,必须用 Azure 账号登录,不能填密码字段;选错会弹出空白登录页或报
Login failed for user ''
特别注意:mssql 扩展在连接 Fabric 时强制走 ConnectionInputMode.FabricBrowse,此时 authentication type 固定为 Azure AD,手动改无效。
对象资源管理器里看不到数据库?检查三个地方
连上服务器后,对象资源管理器中只显示服务器名、不展开数据库列表,常见原因如下:
- 连接时没指定
database名称(或填了不存在的库名),导致连接成功但上下文为空;可在连接对话框中留空 database,连上后再右键服务器 → “新建查询”,先执行SELECT name FROM sys.databases确认可见库 - SQL Server 实例启用了“隐藏系统数据库”选项(如 SSISDB、master 默认不显示),需右键服务器 → “刷新” 或勾选对象资源管理器顶部的“显示系统数据库”开关
- Azure SQL 或 Fabric SQL 的权限不足:当前登录账号没有
dbmanager或db_owner角色,只能看到自己创建的数据库,看不到其他人的
运行 CREATE DATABASE 报错“Database 'xxx' already exists”?别硬删
直接执行 CREATE DATABASE Library 很容易失败,因为 SQL Server 不允许同名库存在。安全写法是加判断:
IF NOT EXISTS (SELECT name FROM sys.databases WHERE name = N'Library')
CREATE DATABASE Library;
但要注意:
- 该语句必须在 master 数据库上下文中执行(连接时 database 字段留空,或显式
USE master) - Fabric SQL 不支持
CREATE DATABASET-SQL 命令,必须通过部署页面(Deployments)用SQL database in Fabric provisioning向导创建 - 本地容器或 Azure SQL 中建库后,
mssql扩展不会自动切换到新库,需手动右键服务器 → “连接到数据库” 再选一次
Fabric 工作空间里建库是异步操作,点完“创建”后要等状态变成 “Online” 才能连,期间对象资源管理器里不会立刻出现新库名。











