Reputation: 1023
I would like to find out the listening port number that is on the SQL server. This have to be done via transact sql. Also, is there any way to know whether is this a static or dynamic port?
I have tried google thus far but have no success thus far.
Running T-SQL scripts returned the following error:
RegOpenKeyEx() returned error 2, 'The system cannot find the file specified.'
Upvotes: 2
Views: 1560
Reputation: 22559
http://smartypeeps.blogspot.com/2006/11/t-sql-script-to-find-nw-port-of-sql.html
set nocount on
DECLARE @test varchar(20), @key varchar(100)
if charindex('\',@@servername,0) <>0
begin
set @key = 'SOFTWARE\MICROSOFT\Microsoft SQL Server\'
+@@servicename+'\MSSQLServer\Supersocketnetlib\TCP'
end
else
begin
set @key = 'SOFTWARE\MICROSOFT\MSSQLServer\MSSQLServer \Supersocketnetlib\TCP'
end
EXEC master..xp_regread @rootkey='HKEY_LOCAL_MACHINE',
@key=@key,@value_name='Tcpport',@value=@test OUTPUT
SELECT 'Server Name: '+@@servername + ' Port Number:'+convert(varchar(10),@test)
OR
http://sql-articles.com/blogs/how-to-find-tcpip-port-via-t-sql/
DECLARE @key VARCHAR(50), @RegistryPath VARCHAR(200)
IF (SERVERPROPERTY('INSTANCENAME')) IS NULL
BEGIN
SET @RegistryPath='Software\Microsoft\MSSQLServer\MSSQLServer\SuperSocketNetLib\Tcp\'
END
ELSE
BEGIN
SET @RegistryPath='Software\Microsoft\Microsoft SQL Server\'+CONVERT(VARCHAR(25),SERVERPROPERTY('INSTANCENAME')) + '\MSSQLServer\SuperSocketNetLib\Tcp\'
END
EXEC master.dbo.xp_regread 'HKEY_LOCAL_MACHINE', @RegistryPath, 'tcpPort'
Both executed and returns the current TCP/IP Port number.
Upvotes: 2