检查SQL Server实例是否在本地计算机上?

时间:2013-01-07 13:36:35

标签: sql-server

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

SQL Server(任何版本2000+)中是否存在某些内容,我可以检查实例是否在本地计算机上而不进行自己的比较?

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:0)

SELECT CASE WHEN CAST(SERVERPROPERTY('MachineName') AS VARCHAR(100)) = CAST(HOST_NAME() AS VARCHAR(100)) THEN 'LOCAL' 
ELSE 'REMOTE' 
END