SQL-查询以获取服务器的IP地址

时间:2020-03-06 14:48:39  来源:igfitidea点击:

我可以用来获取服务器的IP或者名称的SQL Server 2005中是否存在查询?

解决方案

select @@servername

它在@@ SERVERNAME变量中;

SELECT @@SERVERNAME;

我们可以通过以下方式获取[主机名] \ [实例名称]:

SELECT @@SERVERNAME;

要在拥有主机名\实例名称格式时仅获取主机名:

SELECT LEFT(ltrim(rtrim(@@ServerName)), Charindex('\', ltrim(rtrim(@@ServerName))) -1)

就像@GilM指出的那样:

SELECT SERVERPROPERTY('MachineName')

我们可以使用以下方法获取实际的IP地址:

create Procedure sp_get_ip_address (@ip varchar(40) out)
as
begin
Declare @ipLine varchar(200)
Declare @pos int
set nocount on
          set @ip = NULL
          Create table #temp (ipLine varchar(200))
          Insert #temp exec master..xp_cmdshell 'ipconfig'
          select @ipLine = ipLine
          from #temp
          where upper (ipLine) like '%IP ADDRESS%'
          if (isnull (@ipLine,'***') != '***')
          begin 
                set @pos = CharIndex (':',@ipLine,1);
                set @ip = rtrim(ltrim(substring (@ipLine , 
               @pos + 1 ,
                len (@ipLine) - @pos)))
           end 
drop table #temp
set nocount off
end 
go

declare @ip varchar(40)
exec sp_get_ip_address @ip out
print @ip

SQL脚本的来源。

在没有\ InstanceName的情况下获取计算机名称的更简单方法是:

SELECT SERVERPROPERTY('MachineName')