各位用户为了找寻关于SQL语句实现查询SQL Server服务器名称和IP地址的资料费劲了很多周折。这里教程网为您整理了关于SQL语句实现查询SQL Server服务器名称和IP地址的相关资料,仅供查阅,以下为您介绍关于SQL语句实现查询SQL Server服务器名称和IP地址的详细内容
获取服务器名称:
? 1 2 3SELECT
SERVERPROPERTY(
'MachineName'
)
select
@@SERVERNAME
select
HOST_NAME()
获取IP地址可以使用xp_cmdshell执行ipconfig命令:
? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37--开启xp_cmdshell
exec
sp_configure
'show advanced options'
, 1
reconfigure
with
override
exec
sp_configure
'xp_cmdshell'
, 1
reconfigure
with
override
exec
sp_configure
'show advanced options'
, 0
reconfigure
with
override
go
begin
declare
@ipline
varchar
(200)
declare
@pos
int
declare
@ip
varchar
(40)
set
nocount
on
set
@ip =
null
if object_id(
'tempdb..#temp'
)
is
not
null
drop
table
#
temp
create
table
#
temp
(ipline
varchar
(200))
insert
#
temp
exec
master..xp_cmdshell
'ipconfig'
select
@ipline = ipline
from
#
temp
where
upper
(ipline)
like
'%IPv4 地址%'
--这里需要注意一下,系统不同这里的匹配值就不同
if @ipline
is
not
null
begin
set
@pos = charindex(
':'
,@ipline,1);
set
@ip = rtrim(ltrim(
substring
(@ipline ,
@pos + 1 ,
len(@ipline) - @pos)))
end
select
distinct
(rtrim(ltrim(
substring
(@ipline ,
@pos + 1 ,
len(@ipline) - @pos))))
as
ipaddress
from
#
temp
drop
table
#
temp
set
nocount
off
end
go
但是很多情况下由于安全问题是不允许使用xp_cmdshell,可以通过查询SYS.DM_EXEC_CONNECTIONS :
? 1 2 3 4SELECT
SERVERNAME =
CONVERT
(NVARCHAR(128),SERVERPROPERTY(
'SERVERNAME'
))
,LOCAL_NET_ADDRESS
AS
'IPAddressOfSQLServer'
,CLIENT_NET_ADDRESS
AS
'ClientIPAddress'
FROM
SYS.DM_EXEC_CONNECTIONS
WHERE
SESSION_ID = @@SPID