查看SQL数据库本地服务器名称最直接的方法是执行 SELECT @@SERVERNAME 命令,或在SSMS对象资源管理器中右键实例查看属性;如果你连接的是默认实例,服务器名称通常就是你的计算机名。
本地服务器名称到底藏在哪?先分清实例名和计算机名
很多新手第一次接触SQL Server时,会在登录窗口卡住,因为搞不清“服务器名称”该填什么,其实本地服务器名称包含两部分逻辑:计算机名 和 实例名,默认实例下,服务器名称就是计算机名;命名实例则是“计算机名实例名”,DESKTOP-ABC123SQLEXPRESS。
这解释了为什么你明明装了SQL Server,却用纯计算机名登不进去因为你的数据库是命名实例,行业共识认为,本地开发环境里最常见的就是 localhost、 和 计算机名实例名 这三种写法。
三个最实用的查看命令
无论你用的是SQL Server 2008还是2026,下面这些命令都通用,按需求选择即可:
SELECT @@SERVERNAME:返回当前实例的服务器名称,最准确,推荐首选。SELECT SERVERPROPERTY('ServerName'):返回服务器和实例的完整名称,比上一个更详细。SELECT @@SERVICENAME:返回服务名称,通常是MSSQLSERVER或实例名,辅助判断。
打开SSMS新建查询,输入第一条命令执行,结果会直接显示,如果你连查询窗口都打不开,说明登录环节就出了问题,可以参考下一节的操作路径。
在SSMS图形界面里怎么查?两种路径
SSMS(SQL Server Management Studio)是微软官方管理工具,几乎人人必装,在图形界面里查看本地服务器名称不用写代码,但前提是你能连上数据库。
连接对话框里直接看
打开SSMS,弹窗“连接到服务器”中,“服务器名称”输入框右侧有一个下拉箭头,展开后能看到最近使用过的服务器列表
,如果是第一次安装,下拉列表可能是空的,这时就靠命令行或系统服务来查。
已连接实例的属性窗口
登录成功后,在左侧“对象资源管理器”中右键点击最顶层的服务器实例(绿色图标,通常带数据库图标),选择“属性”,打开“服务器属性”窗口,在“常规”页面第一行“名称”字段,就是完整的服务器名称。
不过有个坑:属性窗口显示的“名称”和 @@SERVERNAME 的结果可能不一致,如果你改过计算机名,SQL Server的元数据不会自动更新,属性窗口显示的是旧名称,而 @@SERVERNAME 依然是旧名称,但底层连接可能已经使用新名称,此时需要执行以下命令强制更新:
EXEC sp_dropserver '旧名称';
EXEC sp_addserver '新名称', 'local';
然后重启SQL Server服务,再执行 SELECT @@SERVERNAME 验证。
命令行和配置文件查法,连不上SSMS时的救命稻草
有时候你连SSMS都打不开,比如服务未启动或端口被占用,这时可以用系统级命令查看,无需进入数据库。
用Windows命令提示符查看
按 Win + R 输入 cmd 打开命令提示符,执行:
sc query | findstr /i "MSSQL"
系统会列出所有SQL Server相关服务,你会看到类似 MSSQL$SQLEXPRESS 的服务名, 后面的部分就是实例名,如果服务名是 MSSQLSERVER,说明是默认实例。
更简单的方法是查看“服务”窗口:按 Win + R 输入 services.msc,找到以“SQL Server”开头的服务,双击查看“服务名称”。SQL Server (SQLEXPRESS),括号里的就是实例名。
在SQL Server配置管理器里查
安装SQL Server时自带的“SQL Server配置管理器”,在开始菜单搜索 SQLServerManager 可以打开,左侧导航栏选中“SQL Server服务”,右侧就能看到所有实例的服务名称、状态和启动模式。
这个工具还能帮你确认TCP/IP协议是否启用,因为如果禁用,你用 localhost,1433 这种端口连法也会失败。
查看默认端口号辅助判断
本地服务器名称有时候不写实例名,直接写 localhost,端口号 也能连,查端口的方法:
- 在配置管理器中右键点击你的实例,选择“属性”,切到“IP地址”选项卡,最下方能看到
TCP端口。 - 然后执行
netstat -ano | findstr "1433"确认该端口正在监听。
得到端口后,SSMS连接时服务器名称填 0.0.1,1433 一样有效。
本地服务器名称为什么重要?常见报错对照
弄错服务器名称的后果就是登录失败,常见报错有:
- 错误 26:找不到服务器/实例名称,通常是实例名写错或服务未启动。
- 错误 40:无法打开到SQL Server的连接,常见原因是TCP/IP协议没启用。
- 错误 18456:登录失败,和服务器名称无关,是账号密码或身份验证模式问题。
所以当你看到“找不到服务器”时,第一件事就是用上文命令确认实例名,而不是反复试密码。本地开发时,最稳妥的服务器名称写法是 .实例名, 代表本机,.SQLEXPRESS,这个写法比 localhostSQLEXPRESS 少一步解析,速度更快。
一台电脑装了多个SQL Server实例怎么办
很多人电脑上同时装了SQL Server 2019 Developer版和SQL Server Express版,于是出现两个实例,这时候查看本地服务器名称就要区分具体是哪一套服务。
在命令提示符执行:
sqlcmd -L
会列出局域网内可见的SQL Server实例列表,包括本机的所有实例,显示格式如 DESKTOP-ABC123SQLEXPRESS,如果你想连特定实例,就在SSMS服务器名称输入完整的 计算机名实例名。
另一种方法是查看SQL Server错误日志,日志文件默认路径:
C:Program FilesMicrosoft SQL Server实例名MSSQLLogERRORLOG,用记事本打开,前几行就有“Server name is:”字样。
Q&A:关于查看sql数据库本地服务器名称的常见疑问
问:为什么 SELECT @@SERVERNAME 返回的结果和计算机名不一样?
答:SQL Server在安装时会将计算机名写入系统元数据,如果之后你重命名了Windows计算机,SQL Server的元数据不会自动同步,就会导致 @@SERVERNAME 返回旧名称,执行 sp_dropserver 和 sp_addserver 重新配置后重启服务即可,如果你的连接字符串用了新计算机名,但SQL Server仍返回旧名称,说明元数据未更新,这也解释了为何某些程序连接本地数据库时提示“找不到服务器”。
问:我用 localhost 能连上,但 SELECT @@SERVERNAME 返回的是计算机名,为什么?
答:localhost 是网络别名,指向本机的默认实例或已注册的别名,当你通过 localhost 连接时,SQL Server会接受连接,但 @@SERVERNAME 返回的仍是服务器元数据中的名称,两者不冲突,你可以用 SELECT SERVERPROPERTY('MachineName') 查看实际计算机名,再用 SELECT SERVERPROPERTY('InstanceName') 查看实例名,两者拼接就是完整的本地服务器名称。
问:在Visual Studio或Navicat里填服务器名称,格式有什么不同?
答:几乎所有支持SQL Server的工具都遵循同一格式标准,Visual Studio的服务器资源管理器填 .SQLEXPRESS 或 (localdb)MSSQLLocalDB(针对LocalDB);Navicat填 localhost 或 计算机名实例名 均可,区别仅在于网络协议选择,Navicat默认走TCP/IP,如果实例未开启TCP/IP,需要填 localhost,1433 并开启协议,否则会报超时。(localdb) 是Visual Studio内置的轻量级实例,在开发环境里常和正式SQL Server实例混淆。
首发原创文章,作者:王坚,如若转载,请注明出处:https://idctop.com/article/715781.html





