One screen in setup asks for an instance name, and most people click past it. That one choice shapes every connection string your applications will ever use — so here is what an instance actually is.
An instance is one complete, independent copy of the SQL Server engine on a machine: its own services, its own system databases, its own logins and its own settings. One Windows machine can run several instances side by side, even of different SQL Server versions. Setup offers two flavours — a default instance and named instances — and they differ mainly in how the world addresses them.
There can be exactly one default instance per machine. It takes the machine's own name: if the server is called OFFICE-PC, you connect to OFFICE-PC and you are there. It listens on the well-known port TCP 1433. Because of that simplicity, the default instance is what tutorials assume, what most application installers expect, and what the next technician who maintains your server will look for first. If this machine will run one SQL Server for one main purpose, the decision is already made: default instance.
A named instance carries its own label — SQLEXPRESS is the famous one, but it can be anything, like TEST2022. Clients connect using MachineName\InstanceName. The real power is coexistence: a named SQL Server 2022 instance can sit next to an old 2016 instance on the same machine, each with separate logins, memory settings and databases. That makes named instances the right tool for migration rehearsals, version testing, and isolating one application's database engine from another's on shared hardware.
Named instances do not get port 1433. By default they take a dynamic port that can change when the service restarts, and clients find it by asking the SQL Server Browser service on UDP 1434 which port the name lives on today. Inside one LAN this works quietly. Through a firewall it becomes a classic mystery: the connection works on the server and fails from every other PC. The professional fix is to assign the named instance a fixed TCP port in SQL Server Configuration Manager and open that port — then the Browser service is no longer in the path. Our firewall guide covers the exact steps.
Instances are independent, but they are not cheap. Each one runs its own services, keeps its own memory cache and wants its own share of CPU and RAM. Two instances on one small machine means tuning the memory cap on both, or the first one to start eats everything. Patching also multiplies: every instance must be updated. Create a second instance for a real reason — version testing, isolation, a vendor who demands their own — not because it feels tidy.
Ask one question: will this machine ever need a second, separate SQL Server engine? If no, install the default instance and enjoy the simplest addressing in the building. If yes — an old version must keep running, or a test engine must live beside production — install named instances with clear names and fixed ports. And whatever you choose, write the instance name into your server documentation on day one; six months later, nobody remembers whether it was SQLEXPRESS or the default.
Watch the video to see the instance screen during a real install — and how the finished instance appears in SSMS and Services.
▶️ Watch Full VideoNo. The instance name is fixed at installation and cannot be renamed. The practical workaround is to install a new instance with the name you want, move the databases across with backup and restore, repoint the applications, then uninstall the old instance. Choosing carefully now is much cheaper.
Up to 50 instances per stand-alone server by Microsoft's limits, but real machines run out of RAM and patience far earlier. Each instance is a full engine with its own services and memory. Two or three well-planned instances are normal; fifty is a trivia answer, not a design.
Almost always the port path: the named instance is on a dynamic port and the SQL Server Browser service (UDP 1434) is stopped or blocked, so remote clients cannot discover the port. Give the instance a fixed TCP port in Configuration Manager and open it in the firewall — that resolves the classic case.