Recently I was working for a big international customer who, according to policy installs, Named Instances of SQL Server only. During a huge project deployment, an obstacle occurred: this customer had hardcoded the SQL connection string which pointed to the local Default Instance (even worse ‘.’).
Server=localhost;Database=someDB;User Id=IgnorentUser; Password=IgnorentUserPwd;
This was a problem because our server is not accessible with ‘.’ or ‘localhost’. In a perfect world I would say that this could not go into production, but our customer really wanted this into production that day. We had two options. I could either install a Default Instance on the server or make the current Named Instance look like a Default Instance. Together with our customer we decided to go for the second option. Below I will tell you how.
Convert your Named Instance into Default Instance
It is actually very uncomplicated to convert a Named Instance into a Default Instance. First, simply let your SQL Server listen to the Default port (1433).
Next, you want to make sure no Default Instance has been installed. Also, I have a server with only 1 Named Instance (SQL_NAMEDINST) installed. After that, just open the SQL Server Configuration Manager Tool and go to the TCP/IP Protocols Setting.
Go to the tab IP Address and look for the property TCP Dynamic Ports.
This is the port to which the SQL browser will listen. It will determine which instance the client tries to reach. The Default Instance of SQL Server will always be listed under port 1433. We will change this port to 1433 for our Named Instance.
After this, restart the SQL Server Instance. The Named Instance will now look as a Default Instance to the outside world.
It will be reachable by:
- Named Instance Name
- localhost (.)
- Default Instance
As you can see, making a Name Instance look like a Default Instance is very easy. Moreover, other server applications remain accessible with the Named Instance name. This was the perfect trick for situations as the one I described.