我想确定我连接的SQL Server是否在本地计算机上。我知道有很多方法可以在连接时识别SQL Server的服务器\实例名称,但是有很多不同的方式可以指定服务器名称,我不希望自己在IP地址之间进行比较,机器名称,(local)
,LocalHost
,.
等
SQL Server(任何版本2000+)中是否存在某些内容,我可以检查实例是否在本地计算机上而不进行自己的比较?
答案 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