今天进行负载均衡的测试的时候 想查询一下数据库相关信息 百度了下 找到解决方案为:
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
感谢原作者的blog
SQL语句实现查询SQL Server服务器名称和IP地址_MsSql
转载:https://edu.aliyun.com/a/12773
获取服务器名称:
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