Eu vi um caso estranho recentemente e ainda não tenho ideia de qual deve ser o raciocínio por trás disso. Em um dos meus servidores de desenvolvimento, duas instâncias do SQL Server estão em execução - uma é padrão e outra é a instância UAT.
Recentemente, fizemos a alteração na porta padrão de ambas as instâncias e o mesmo foi comunicado à equipe de desenvolvimento e outras partes interessadas para iniciar sua alteração e testar o mesmo. Para não afetar o aplicativo existente, a porta 1433 foi mantida como está na instância padrão. Então, abaixo estão os detalhes do servidor e da porta para se conectar:
Conexão por padrão --> Server_Name,35683
Conexão para instância nomeada (SIT) --> Server_Name\SIT,35685
Ambas as instâncias têm bancos de dados semelhantes, porém diferentes conjuntos de dados, pois apontam para ambientes diferentes.
Um dos desenvolvedores sênior estava usando a conexão como Server_name\SIT,35683 significando incompatibilidade de instância e porta. Ele estava usando a instância SIT, no entanto, a porta da instância padrão e estava conectando-o à instância padrão.
Isso foi detectado quando eu estava em sua mesa e estávamos testando algum código e notei isso porque minha alteração não estava refletindo na instância padrão, pois eu havia feito alterações na instância SIT.
Alguém pode explicar esse comportamento e como resolver isso?
Uma especificação de número de porta substitui o nome da instância, ignorando completamente o nome da instância. Por exemplo, você pode se conectar usando o SSMS usando "YourSqlServer\badname,1433 mesmo se o nome da instância for inválido.
Quando o número da porta é omitido com um nome de instância, o cliente consulta o navegador do SQL Server para determinar a porta necessária.