patternsqlMinor
TSQL to find if server is listening on dynamic or static port
Viewed 0 times
tsqlfindlisteningdynamicserverportstatic
Problem
Using TSQL, how can I find if the MS SQL server (any version) is configured to use static port or is it using dynamic port?
Script i am trying to use:
Script i am trying to use:
DECLARE @TcpPort VARCHAR(5)
,@RegKey VARCHAR(100)
IF @@SERVICENAME !='MSSQLSERVER'
BEGIN
SET @RegKey = 'SOFTWARE\Microsoft\Microsoft SQL Server\' + @@SERVICENAME + '\MSSQLServer\SuperSocketNetLib\Tcp\IPAll'
END
ELSE
BEGIN
SET @RegKey = 'SOFTWARE\MICROSOFT\MSSQLSERVER\MSSQLSERVER\SUPERSOCKETNETLIB\TCP\IPAll'
END
EXEC master..xp_regread
@rootkey = 'HKEY_LOCAL_MACHINE'
,@key = @RegKey
,@value_name = 'TcpPort'
,@value = @TcpPort OUTPUT
EXEC master..xp_regread
@rootkey = 'HKEY_LOCAL_MACHINE'
,@key = @RegKey
,@value_name = 'TcpDynamicPorts'
,@value = @TcpPort OUTPUT
SELECT @TcpPort AS PortNumber
,@@SERVERNAME AS ServerName
,@@SERVICENAME AS ServiceNameSolution
You can determine which port an instance is using from the error log but not whether its static or dynamic.
Alternative would be to read from the registry via xp_regread.
EXEC xp_readerrorlog 1, 1, 'Server is listening'Alternative would be to read from the registry via xp_regread.
DECLARE
@StaticPort NVARCHAR(512)
, @DynamicPort NVARCHAR(512)
EXEC xp_regread
'HKEY_LOCAL_MACHINE'
, 'SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL.1\MSSQLServer\SuperSocketNetLib\Tcp\IPAll'
, 'TcpPort'
, @StaticPort OUTPUT
EXEC xp_regread
'HKEY_LOCAL_MACHINE'
, 'SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL.1\MSSQLServer\SuperSocketNetLib\Tcp\IPAll'
, 'TcpDynamicPorts'
, @DynamicPort OUTPUT
SELECT
@StaticPort AS StaticPort
, @DynamicPort AS DynamicPortCode Snippets
EXEC xp_readerrorlog 1, 1, 'Server is listening'DECLARE
@StaticPort NVARCHAR(512)
, @DynamicPort NVARCHAR(512)
EXEC xp_regread
'HKEY_LOCAL_MACHINE'
, 'SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL.1\MSSQLServer\SuperSocketNetLib\Tcp\IPAll'
, 'TcpPort'
, @StaticPort OUTPUT
EXEC xp_regread
'HKEY_LOCAL_MACHINE'
, 'SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL.1\MSSQLServer\SuperSocketNetLib\Tcp\IPAll'
, 'TcpDynamicPorts'
, @DynamicPort OUTPUT
SELECT
@StaticPort AS StaticPort
, @DynamicPort AS DynamicPortContext
StackExchange Database Administrators Q#6872, answer score: 9
Revisions (0)
No revisions yet.