How to find the port SQL Server is listing/using using TSQL/Code?


Use below code to programmatically find the port number/s SQL Server Server is listing/using:

DECLARE @port varchar(15), 
@value_name varchar(15), 
@RegistryPath varchar(200) 
IF (charindex('\',@@SERVERNAME)<>0) -- This loop is for named instances 
BEGIN 
SET @RegistryPath = 'SOFTWARE\Microsoft\Microsoft SQL Server\' + 
RIGHT(@@SERVERNAME,LEN(@@SERVERNAME)-CHARINDEX('\',@@SERVERNAME)) + 
'\MSSQLServer\SuperSocketNetLib\Tcp' 
END 
ELSE -- This is for Default Instance 
BEGIN 
SET @RegistryPath = 
'SOFTWARE\Microsoft\MSSQLServer\MSSQLServer\SuperSocketNetLib\Tcp' 
END 
EXEC master..xp_regread 
@rootkey='HKEY_LOCAL_MACHINE' , 
@key=@RegistryPath, 
@value_name='TcpPort', 
@value=@port OUTPUT 
Print 'Port Number of Server '+ @@SERVERNAME + ' is: ' + @port 

Note: This code is tested on SQL 2008 R2 SP2


Comments