Work with multiple versions and instances of SQL Server
Applies to: SQL Server - Windows only
You can install multiple instances of SQL Server, or install SQL Server on a computer where earlier SQL Server versions are already installed.
Note
If you need to install multiple instances of SQL Server on Linux, see Deploy and connect to SQL Server Linux containers.
The following SQL Server-related items are compatible with the installation of multiple instances on the same computer:
- Database Engine
- Analysis Services
- Reporting Services 1
1 Starting with SQL Server 2016 (13.x), SQL Server Reporting Services (SSRS) is installed separately.
You can upgrade earlier versions of SQL Server on a computer where other SQL Server versions are already installed. For supported upgrade scenarios, see Supported Version and Edition Upgrades.
Version components and numbering
The following concepts are useful in understanding the behavior of SQL Server for side-by-side instances of SQL Server.
The standard product version format for SQL Server is MM.nn.bbbb.rr
, where each segment is defined as:
MM
- Major versionnn
- Minor versionbbbb
- Build numberrr
- Build revision number
In each major or minor release of SQL Server, there's an increment to the version number to differentiate it from earlier versions. This change to the version is used for many purposes, including:
- displaying version information in the user interface
- controlling how files are replaced during upgrade
- applying service packs and cumulative updates
- as a mechanism for functional differentiation between the successive versions
Components shared by all versions of SQL Server
Certain components are shared by all instances of all installed versions of SQL Server. When you install different versions of SQL Server side by side on the same machine, these components are automatically upgraded to the latest version. Such components are usually uninstalled automatically when the last instance of SQL Server is uninstalled.
Examples: SQL Server Browser and Microsoft SQL Server VSS Writer.
Components shared across all instances of the same major version of SQL Server
SQL Server versions that have the same major version share some components across all instances. If the shared components are selected during upgrade, the existing components are upgraded to the latest version.
Examples: Integration Services, Master Data Services, SQL Server Management Studio, SQL Server Data Tools (SSDT), and SQL Server Books Online.
Components shared across minor versions
SQL Server versions that have the same major.minor version shared components.
Example: Setup support files.
Components specific to an instance of SQL Server
Some SQL Server components or services are specific to an instance of SQL Server (instance-aware). They share the same version as the instance that hosts them, and are used exclusively for that instance.
Examples: Database Engine, Analysis Services, and Reporting Services.
For a list of features supported by the editions of SQL Server on Windows, see:
- Editions and supported features of SQL Server 2022
- Editions and supported features of SQL Server 2019
- Editions and supported features of SQL Server 2017
- Editions and supported features of SQL Server 2016
For a list of features supported by the editions of SQL Server on Linux, see:
- Editions and supported features of SQL Server 2022
- Editions and supported features of SQL Server 2019
- Editions and supported features of SQL Server 2017
Components that are independent of the SQL Server versions
Certain components are installed during SQL Server setup, but are independent of the versions of SQL Server. They may be shared across major versions or by all SQL Server versions.
Examples: Microsoft Sync Framework, SQL Server Compact.
For more information about SQL Server Compact installation, see Install SQL Server from the Installation Wizard (Setup). For more information about how to uninstall SQL Server Compact, see Uninstall an existing instance of SQL Server (Setup).
Use SQL Server side-by-side with previous versions of SQL Server
You can install SQL Server on a computer that is already running instances of an earlier SQL Server version. If a default instance already exists on the computer, SQL Server must be installed as a named instance.
The following table shows side-by-side support for each version of SQL Server on commonly supported versions of Windows with required versions of .NET installed:
Existing instance | Side by side support |
---|---|
SQL Server 2022 (16.x) | SQL Server 2008 (10.0.x) through SQL Server 2019 (15.x) |
SQL Server 2019 (15.x) | SQL Server 2008 (10.0.x) through SQL Server 2017 (14.x) |
SQL Server 2017 (14.x) | SQL Server 2008 (10.0.x) through SQL Server 2016 (13.x) |
SQL Server 2016 (13.x) | SQL Server 2008 (10.0.x) through SQL Server 2014 (12.x) |
For more information, see Using SQL Server in Windows 8 and later.
SysPrep considerations
SQL Server SysPrep doesn't support side by side installation of prepared instances of SQL Server with earlier versions of SQL Server on the same computer. However, you can install multiple prepared instances of the same major version of SQL Server side by side on the same computer. For more information, see Considerations for Installing SQL Server Using SysPrep.
SQL Server 2016 (13.x) and later versions can't be installed side-by-side with earlier versions of SQL Server on a computer that is running Windows Server 2008 R2 Server Core SP 1. For more information on Server Core installations, see Install SQL Server on Server Core.
Prevent IP address conflicts
When a SQL Server Failover Cluster Instance is installed side by side with a standalone instance of the SQL Server Database Engine, take care to avoid TCP port number conflicts on the IP addresses. Conflicts usually occur when two instances of the Database Engine are both configured to use the default TCP port (1433).
To avoid conflicts, configure one instance to use a non-default fixed port. Configuring a fixed port is usually easiest on the standalone instance. Configuring the Database Engine to use different ports prevents an unexpected IP address/TCP port conflict that blocks an instance startup when a SQL Server Failover Cluster Instance fails to the standby node.