查看SQL Server服务器名和数据库名,最快的方法是:在SSMS新建查询里执行“SELECT @@SERVERNAME”拿服务器名,执行“SELECT DB_NAME()”拿当前数据库名。如果你不想记命令,打开SSMS左侧的“对象资源管理器”,顶部那一行显示的既是服务器名,展开“数据库”文件夹看到的列表就是这台实例上的所有数据库名,接下来我按图形界面、命令行、远程连接三种场景,把每一步都拆开讲清楚。
先用SSMS图形界面查:sql server数据库名怎么查
SQL Server Management Studio(简称SSMS)是官方免费图形工具,装好并连上数据库后,查名字基本是“看两眼”的事。
查服务器名的几个入口
- 对象资源管理器顶部:打开SSMS时弹出的“连接到服务器”窗口,服务器名称那一栏里填的内容就是目标服务器名,连接成功后,左侧树状结构最顶端的节点名也是它。
- 服务器属性窗口:在对象资源管理器里右键点击服务器名,选择“属性”,弹出窗口左侧“常规”页签里,“名称”和“产品”两行分别显示服务器实列名和版本。
- 活动监视器:右键服务器名选“活动监视器”,顶部标题栏也会显示完整的服务器名加实例名。
查当前数据库名和所有数据库名
连接上某个具体的数据库后,左上角下拉框里选中的名称就是当前库名,想一次看到这一台实例上的所有库,点开“数据库”文件夹前的加号,所有用户库和系统库都会列出来,系统库通常会标灰色,用户库是黑色加粗,实际工作里大家更关心的是自己业务用的库,系统库(master、model、msdb、tempdb)尽量不要动。
顺手注册服务器,以后不用每次手敲
左侧“已注册的服务器”面板里可以右键“新建服务器注册”,把服务器名、端口、认证方式存下来,下次点一下就能连,不用反复回忆名字怎么拼,这个习惯特别适合同时管理多套环境(开发、测试、生产)的DBA或运维人员。
不想开界面?用命令:sql server查看服务器名的命令
SSMS虽然直观,但有些服务器没装图形界面,或者你正在写自动化脚本,这时T-SQL命令就派上用场了。
三条最常用的查询命令
-- 查看当前SQL Server实例的服务器名
SELECT @@SERVERNAME AS ServerName;
-- 查看更多服务器属性(服务器名、实例名、版本、机器名)
SELECT
SERVERPROPERTY('MachineName') AS MachineName,
SERVERPROPERTY('ServerName') AS ServerName,
SERVERPROPERTY('InstanceName') AS InstanceName,
SERVERPROPERTY('Edition') AS Edition;
-- 查看当前所在数据库名
SELECT DB_NAME() AS CurrentDB;
-- 列出实例上所有数据库名
SELECT name FROM sys.databases ORDER BY name;
每条命令分别解决什么问题
- @@SERVERNAME:返回当前连接的服务器名和实例名,如果是默认实例,只显示机器名;如果是命名实例,显示“机器名\实例名”的格式。
- SERVERPROPERTY(‘ServerName’):功能类似,但更标准化,官方文档里推荐用它替代@@SERVERNAME,因为它能同时返回实例名,且受网络别名影响更小。
- DB_NAME():不带参数时返回当前会话所在的数据库名;也可以带上数据库ID,比如DB_NAME(1)返回master。
- sys.databases视图:这个视图里每行代表一个数据库,name列就是库名,还附带数据库ID、创建时间等元数据,用WHERE database_id > 4可以过滤掉系统库,只留下用户库。
一个特殊情况:服务器名被改过的坑
有台机器的Windows计算机名改了,但SQL Server服务没重启,你会发现@@SERVERNAME返回的还是旧名字,而SERVERPROPERTY(‘MachineName’)返回的是新名字,两者不一致时,连接字符串里写哪个都对不上,容易报“找不到服务器”的错误,解决办法是在SQL Server配置管理器里重启一下服务,让实例重新注册机器名,如果还不行,可以执行存储过程sp_dropserver和sp_addserver来同步元数据,但这个操作有风险,最好在维护窗口期做,先备份注册表。
别搞混:sql server服务器名和实例名有什么区别
从上面命令输出里你已经看到了,“服务器名”和“实例名”是两样东西,但很多初学者把它们混成一个概念。
默认实例和命名实例的差异
用户名是一个最简单的比喻:机器名相当于你的姓名,实例名相当于你在公司的职位别名,一台机器上可以装多个SQL Server实例,第一个装的是默认实例,连接时只用写机器名;后面装的都叫命名实例,连接时要写成“机器名\实例名”,端口也可能不同,你在一台机器上装了两遍SQL Server,第一遍默认实例名是MSSQLSERVER,第二遍你给它起名叫SQL2026,那连接方式分别为“MyPC”和“MyPC\SQL2026”,完全两个入口。
查端口时怎么对应实例
想知道某个实例听的端口,可以看SQL Server配置管理器里的“SQL Server网络配置”,找到对应实例的TCP/IP协议,右键属性里的IP地址页签中,IPAll的“TCP动态端口”里就是运行时的端口号,默认实例一般是1433,命名实例通常是动态端口,远程连接时这两个信息缺一不可。
服务器名和数据库名在连接字符串里的分工
连接字符串里,Server节点填服务器名和端口,Database节点填数据库名,一个常见的错误是把数据库名写进Server节点里,导致报错“找不到服务器或无法访问”,行业共识认为,排查这类问题第一步永远是核对连接字符串的两个节点各写了什么。
远程连接场景下sql服务器名怎么填
本地机器名好查,但远程连别人的数据库时,服务器名往往不是“看到什么填什么”那么简单。
同一局域网内怎么填
局域网内通常写“目标机器名”或“目标机器IP地址”,如果目标实例是命名实例,写“IP\实例名”,先ping一下确认网络通,再用telnet测试1433端口是否开放,如果你不确定对方的实例名,可以在自己的机器上用命令“sqlcmd -L”扫描局域网内可见的SQL Server实例,或者让对方在目标机器上执行前面说的SELECT命令把名字发给你。
云服务器或跨网段怎么填
云数据库(比如简米云RDS、酷番云SQL Server)的服务器名一般是公网域名或IP加回车号端口,rm-xyz.mysql.rds.aliyuncs.com,1433”,注意端口号用英文逗号和IP拼接,而不是冒号,这种场景下,“服务器名”里包含的其实是地址和端口的组合,别再往后面加实例名,否则很容易冲突。
远程查看服务器名的顺口溜
先确认网络通,再查端口通,最后填名字,三步走下来,大部分连接问题都能解决,把目标服务器上的SQL Server配置管理器打开,看看TCP/IP是否已启用、端口是不是1433,Windows防火墙有没有放行。
常见报错:看到这些提示就知道名字写错了
报错信息是别名内存最直接的反饋,下面几种情况比较常见。
找不到服务器或无法访问
登录时提示“在建立与服务器的连接时出错,在连接到SQL Server时,默认设置SQL Server不允许远程连接”,多数情况是服务器名或实例名写错,先去目标机器上把@@SERVERNAME查出来,逐字对照,别漏掉反斜杠和实例名。
用户登录失败
提示“用户‘sa’登录失败”,说明服务器连上了,但用户名或密码不对,或者该账号没有远程登录权限,这种情况与服务器名无关,重点查SQL Server的登录名映射和密码策略。
已成功与服务器建立连接,但在登录过程中发生错误
这种提示常见于“在登录前握手期间超时”,比较多的情况是SSL证书或加密协议不匹配,你可以临时在连接设置里把“加密连接”改false试一下,能连上说明是证书问题,业内专家指出,明确提示的报错更容易定位,反而是这种半通不通的提示最考验耐心。
改过机器名后连不上
前面提到的@@SERVERNAME和MachineName不一致导致连接异常,把SQL Server服务重启一下基本能恢复,重启前先确认没有正在跑的作业或长事务,避免影响业务。
换个思路:用sqlcmd命令在命令行查名字
不装SSMS的场合,sqlcmd是第一选择,它是SQL Server自带的命令行工具,很多轻量排查工作用它反而更顺手。
sqlcmd -S 你的服务器名 -U sa -P 你的密码 -Q "SELECT @@SERVERNAME, DB_NAME()"
查完当前库名再查所有库:
sqlcmd -S 你的服务器名 -U sa -P 你的密码 -Q "SELECT name FROM sys.databases"
命令行模式下输出的格式是纯文本,适合快速判断,平时管理大量服务器时,可以写一个小循环脚本,逐台机器拉取服务器名和数据库名,整理成清单,省得一台台开SSMS。
Q&A
怎么看SQL Server的服务器名和数据库名?
最直接的方式是打开SSMS,连接后看对象资源管理器顶部;如果要查更准确的值,执行SELECT @@SERVERNAME和SELECT DB_NAME(),列出所有数据库名则用SELECT name FROM sys.databases。
为什么我在本机写“.”或“localhost”能连上,换到别的电脑就失败?
“.”和“localhost”都指本机,其他电脑上的SQL Server自然不认,跨机器连接时,需要填写目标机器的IP地址或计算机名,同时保证目标实例允许远程连接且防火墙放行TCP 1433端口,如果目标实例是命名实例,还需要带上“\实例名”后缀。
连接字符串里服务器名和数据库名写反了会怎样?
连接会失败,报错通常包含“找不到服务器或无法访问”或“在尝试建立连接时出错”,SQL Server需要先根据Server字段找到实例,再用Database字段定位所选库,两者不区分大小写,但必须各就各位。
首发原创文章,作者:王坚,如若转载,请注明出处:https://idctop.com/article/783430.html


