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 に答える