欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

SQL语句实现查询SQL Server服务器名称和IP地址

程序员文章站 2023-01-03 15:28:33
获取服务器名称: select serverproperty('machinename') select @@servername select host_n...

获取服务器名称:

select serverproperty('machinename')
select @@servername
select host_name()

获取ip地址可以使用xp_cmdshell执行ipconfig命令:

--开启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 :

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