SQL语句实现查询SQL Server服务器名称和IP地址 |
|
获取服务器名称: SELECT SERVERPROPERTY(MachineName) select @@SERVERNAME select HOST_NAME() 获取IP地址可以使用xp_cmdshell执行ipconfig命令:
--开启xp_cmdshell
exec sp_configureshow advanced options, 1
reconfigure with override
exec sp_configurexp_cmdshell, 1
reconfigure with override
exec sp_configureshow 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_cmdshellipconfig
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 : SELECT 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 |