3

我想确定我要连接的 SQL Server 是否在本地计算机上。我知道有很多方法可以在连接到 SQL Server 时识别它的服务器\实例名称,但是可以指定服务器名称的方式有很多,我不想自己在 IP 地址之间进行比较, 机器名称, (local), LocalHost,.

SQL Server(任何版本 2000+)中有什么东西可以检查实例是否在本地计算机上,而无需自己进行比较?

4

2 回答 2

4
SELECT Case when HOST_NAME()=
       Case When CharIndex('\',@@SERVERNAME)=0 then @@SERVERNAME else LEFT(@@SERVERNAME,CharIndex('\',@@SERVERNAME)-1) end
       then 'local' else 'remote' end

因为@@SERVERNAME 是在安装时定义的,并且可能已经更改(甚至通过 sp_addserver),所以您更喜欢:

SELECT Case when HOST_NAME()=SERVERPROPERTY('MachineName') then 'local' else 'remote' end
于 2013-01-07T14:17:45.373 回答
0
SELECT CASE WHEN CAST(SERVERPROPERTY('MachineName') AS VARCHAR(100)) = CAST(HOST_NAME() AS VARCHAR(100)) THEN 'LOCAL' 
ELSE 'REMOTE' 
END
于 2014-10-07T07:06:09.677 回答