如何判断SQL Server是本地还是远程?

seb*_*mez 14 sql-server

在我的应用程序中,用户可以从网络中的SQL Server列表中进行选择.问题是我需要知道所选实例是本地计算机还是远程计算机.

有没有办法我可以问SQL实例她在哪台电脑上?有没有办法解决这个问题?

Edit1:我想知道托管SQL Server的主机名,以便我可以将其与之进行比较System.Environment.MachineName并确定Sql Server是否在运行我的应用程序的同一台机器上运行

Edit2: @@servername返回我的computername\sqlinstance,同时SELECT SERVERPROPERTY('MachineName')只返回computername,这正是我想要的

Joh*_*nFx 11

使用@@ Servername,例如:

SELECT @@servername
Run Code Online (Sandbox Code Playgroud)

或者你可以做到这一点

SELECT SERVERPROPERTY('MachineName') 
Run Code Online (Sandbox Code Playgroud)

从MSDN上看这些方法之间的差异:

SERVERPROPERTY函数的ServerName属性和@@ SERVERNAME返回类似的信息.ServerName属性提供Windows服务器和实例名称,它们共同构成唯一的服务器实例.@@ SERVERNAME提供当前配置的本地服务器名称.

如果尚未更改安装时的默认服务器名称,则ServerName属性和@@ SERVERNAME将返回相同的信息.

如果在安装时已从默认服务器名称更改了本地服务器名称,则@@ SERVERNAME将返回新名称.