Learn how to perform an in-place upgrade of SQL Server 2012 to SQL Server 2019 on Windows Server 2019 and how to choose the right licensing option for your needs.
If you are running SQL Server 2012 on Windows Server 2019 and want to upgrade to SQL Server 2019, you may wonder how to do it and what licensing option to choose.
In this article, we will show you the steps to perform an in-place upgrade of SQL Server 2012 to SQL Server 2019 on Windows Server 2019 and explain the differences between SQL Server 2019 Standard Edition – Server/CAL and SQL Server 2019 Standard Edition – Per Core licensing options.
Table of Contents
- Prerequisites for Upgrading SQL Server 2012 to SQL Server 2019
- Steps to Upgrade SQL Server 2012 to SQL Server 2019
- How to Choose Between SQL Server 2019 Standard Edition – Server/CAL and SQL Server 2019 Standard Edition – Per Core Licensing Options
- Frequently Asked Questions (FAQs)
- Question: Can I upgrade from SQL Server 2012 to SQL Server 2019 directly?
- Question: Can I add new features during the upgrade of SQL Server 2012 to SQL Server 2019?
- Question: Can I upgrade from SQL Server 2012 32-bit to SQL Server 2019 64-bit?
- Summary
Prerequisites for Upgrading SQL Server 2012 to SQL Server 2019
Before you start the upgrade process, you need to make sure that your system meets the following requirements:
- You have a supported operating system. SQL Server 2019 supports Windows Server 2019, Windows Server 2016, Windows Server 2012 R2, Windows 10, Windows 8.1, and Windows 7 SP1.
- You have a supported version of SQL Server 2012. SQL Server 2019 supports upgrade from SQL Server 2012 SP4 or later.
- You have a backup of your databases and logins. You should always backup your databases and logins before performing any upgrade operation. You can use the SQL Server Management Studio (SSMS) or the BACKUP and RESTORE commands to backup and restore your databases. You can use the sp_help_revlogin stored procedure to generate scripts for your logins.
- You have the SQL Server 2019 installation media. You can download the SQL Server 2019 installation media from the Microsoft Evaluation Center or the Microsoft Volume Licensing Service Center.
Once you have verified the prerequisites, you can follow these steps to upgrade SQL Server 2012 to SQL Server 2019:
- Run the SQL Server 2019 setup file as an administrator.
- On the main Installation screen, choose Upgrade from a previous version of SQL Server.
- On the Product Key page, enter your product key or choose Evaluation if you want to try SQL Server 2019 for 180 days.
- On the License Terms page, accept the license terms and privacy statement.
- On the Microsoft Update page, choose whether to use Microsoft Update to check for updates.
- On the Install Rules page, review the rules and fix any issues that may prevent the upgrade.
- On the Select Instance page, choose the instance of SQL Server 2012 that you want to upgrade.
- On the Select Features page, choose the features that you want to upgrade.
- On the Instance Configuration page, review the instance name and the instance ID.
- On the Server Configuration page, review the service accounts and the startup types for the SQL Server services.
- On the Database Engine Configuration page, review the authentication mode and the administrators for the Database Engine.
- On the Ready to Upgrade page, review the summary of the upgrade actions and click Upgrade.
- On the Upgrade Progress page, monitor the status of the upgrade operation.
- On the Complete page, review the results of the upgrade and close the setup wizard.
How to Choose Between SQL Server 2019 Standard Edition – Server/CAL and SQL Server 2019 Standard Edition – Per Core Licensing Options
SQL Server 2019 Standard Edition offers two licensing options: Server/CAL and Per Core. The Server/CAL option requires a license for the server and a Client Access License (CAL) for each user or device that accesses the server. The Per Core option requires a license for each core of the server where SQL Server is running, regardless of the number of users or devices that access the server.
The Server/CAL option may be more cost-effective if you have a small number of users or devices that access the server, or if you have a large number of cores on the server. The Per Core option may be more cost-effective if you have a large number of users or devices that access the server, or if you have a small number of cores on the server.
To choose the right licensing option for your needs, you should consider the following factors:
- The number of users or devices that access the server
- The number of cores on the server
- The performance and scalability requirements of your applications
- The budget and compliance requirements of your organization
You can use the SQL Server 2019 Licensing Guide and the SQL Server 2019 Licensing Calculator to compare the costs and benefits of the Server/CAL and Per Core options.
Frequently Asked Questions (FAQs)
Question: Can I upgrade from SQL Server 2012 to SQL Server 2019 directly?
Answer: Yes, you can upgrade from SQL Server 2012 SP4 or later to SQL Server 2019 directly, without having to upgrade to any intermediate versions.
Question: Can I add new features during the upgrade of SQL Server 2012 to SQL Server 2019?
Answer: No, you cannot add new features during the upgrade of SQL Server 2012 to SQL Server 2019. You can only upgrade the existing features that you have installed. If you want to add new features after the upgrade, you can use the SQL Server 2019 Setup to do so.
Question: Can I upgrade from SQL Server 2012 32-bit to SQL Server 2019 64-bit?
Answer: No, you cannot upgrade from SQL Server 2012 32-bit to SQL Server 2019 64-bit using the SQL Server Setup. SQL Server 2019 is only available for 64-bit platforms. However, you can migrate your databases from SQL Server 2012 32-bit to SQL Server 2019 64-bit by using the backup and restore or detach and attach methods.
Summary
In this article, we have shown you how to perform an in-place upgrade of SQL Server 2012 to SQL Server 2019 on Windows Server 2019 and how to choose between SQL Server 2019 Standard Edition – Server/CAL and SQL Server 2019 Standard Edition – Per Core licensing options. We hope this article has been helpful for you and you have successfully upgraded your SQL Server to the latest version.
Yes, SQL Server 2019 can run on Windows Server 2012 R2.
Which version of SQL Server is compatible with Windows Server 2019?
Yes, SQL Server 2016 can run on Windows Server 2012 R2.
Can SQL Server 2017 run on Windows Server 2012 R2?
Yes, SQL Server 2017 can run on Windows Server 2012 R2. However, there are some important considerations to keep in mind. First, SQL Server 2017 requires at least .NET Framework 4.6.1. Windows Server 2012 R2 includes .NET Framework 4.5, so you will need to install the .NET Framework 4.6.1 update before installing SQL Server 2017. Secondly, SQL Server 2017 also requires that the Windows PowerShell 3.0 be installed. Windows Server 2012 R2 includes PowerShell 2.0, so you will need to install the PowerShell 3.0 update before installing SQL Server 2017.
Is SQL 2019 backwards compatible?
Yes, SQL Server 2019 is backwards compatible with earlier versions of SQL Server. This means that you can restore a SQL Server 2019 database onto a server running an earlier version of SQL Server, and you can attach a SQL Server 2019 database to an earlier version of SQL Server.
What are the requirements for SQL Server 2019?
SQL Server 2019 requires Windows Server 2019, Windows Server 2016, or Windows Server 2012 R2. It also requires .NET Framework 4.6.1, and 4.6.2 is recommended. The minimum memory requirement is 2 GB, and the recommended memory is 4 GB. The minimum disk space requirement is 1 GB, and the recommended disk space is 10 GB.
Can SQL Server 2019 run on Windows Server 2008?
No, SQL Server 2019 cannot run on Windows Server 2008.
Can we install SQL 2019 on Windows Server 2016?
Yes, you can install SQL Server 2019 on Windows Server 2016.
Here are the steps:
1. Download the SQL Server 2019 installation media from Microsoft.
2. Mount the installation media, and run setup.exe.
3. On the Installation tab, select New SQL Server stand-alone installation or add features to an existing installation.
4. On the Product Key page, enter the product key, and then click Next.
5. On the License Terms page, review the terms, select the I accept the license terms check box, and then click Next.
6. On the Global Rules page, click Next.
7. On the Feature Selection page, select the features that you want to install, and then click Next.
8. On the Installation Rules page, click Next.
9. On the Ready to Install page, click Install.
10. After the installation is complete, click Close.
Will SQL 2016 run on Windows 2008 R2?
Yes, SQL 2016 will run on Windows 2008 R2.
Can you restore a SQL 2012 database to SQL 2019?
Yes, you can restore a SQL 2012 database to SQL 2019. In order to do this, you will need to first take a backup of the SQL 2012 database. Once you have the backup, you will need to restore it to a SQL 2019 instance.
Is SQL Server 2008 R2 compatible with Windows Server 2019?
Yes, SQL Server 2008 R2 is compatible with Windows Server 2019.
Can we install SQL Server 2019 on Windows Server 2016?
Yes, you can install SQL Server 2019 on Windows Server 2016. Here are the steps:
1. Download the SQL Server 2019 installation media from Microsoft.
2. Mount the installation media and run the setup program.
3. On the Installation Type page, select the Custom installation option.
4. On the Specify Instance Configuration page, select the New SQL Server stand-alone installation or add features to an existing installation option.
5. On the Feature Selection page, select the Database Engine Services and Management Tools features.
6. On the Instance Configuration page, specify a name for the SQL Server instance.
7. On the Disk Space Requirements page, ensure that there is sufficient disk space for the installation.
8. On the Server Configuration page, specify the account to use for the SQL Server service.
9. On the Database Engine Configuration page, specify the authentication mode to use.
10. On the Ready to Install page, review the configuration options and click Install to begin the installation.
Is SQL Server 2019 still supported?
Yes, SQL Server 2019 is still supported. Microsoft currently offers mainstream support for SQL Server 2019 which began on October 2, 2019 and will continue until October 13, 2020. After that, extended support will be available until October 14, 2025.
What operating system does SQL Server run on?
SQL Server is a relational database management system (RDBMS) developed by Microsoft. It runs on Windows Server operating system.
What is SQL Server compatibility level?
SQL Server compatibility level indicates what version of SQL Server a database is compatible with. This is important because it determines which features are available to the database and which T-SQL syntax can be used. For example, a database with a compatibility level of SQL Server 2012 will be able to use features introduced in SQL Server 2012, but not features introduced in SQL Server 2014. To change the compatibility level of a database, use the ALTER DATABASE command.
{“@context”:”https://schema.org”,”@type”:”FAQPage”,”mainEntity”:[{“@type”:”Question”,”name”:”Can SQL Server 2016 run on Windows Server 2012 R2?”,”acceptedAnswer”:{“@type”:”Answer”,”text”:”nnYes, SQL Server 2016 can run on Windows Server 2012 R2.”}},{“@type”:”Question”,”name”:”Can SQL Server 2017 run on Windows Server 2012 R2?”,”acceptedAnswer”:{“@type”:”Answer”,”text”:”nnYes, SQL Server 2017 can run on Windows Server 2012 R2. However, there are some important considerations to keep in mind. First, SQL Server 2017 requires at least .NET Framework 4.6.1. Windows Server 2012 R2 includes .NET Framework 4.5, so you will need to install the .NET Framework 4.6.1 update before installing SQL Server 2017. Secondly, SQL Server 2017 also requires that the Windows PowerShell 3.0 be installed. Windows Server 2012 R2 includes PowerShell 2.0, so you will need to install the PowerShell 3.0 update before installing SQL Server 2017.”}},{“@type”:”Question”,”name”:”Is SQL 2019 backwards compatible?”,”acceptedAnswer”:{“@type”:”Answer”,”text”:”nnYes, SQL Server 2019 is backwards compatible with earlier versions of SQL Server. This means that you can restore a SQL Server 2019 database onto a server running an earlier version of SQL Server, and you can attach a SQL Server 2019 database to an earlier version of SQL Server.”}},{“@type”:”Question”,”name”:”What are the requirements for SQL Server 2019?”,”acceptedAnswer”:{“@type”:”Answer”,”text”:”nnSQL Server 2019 requires Windows Server 2019, Windows Server 2016, or Windows Server 2012 R2. It also requires .NET Framework 4.6.1, and 4.6.2 is recommended. The minimum memory requirement is 2 GB, and the recommended memory is 4 GB. The minimum disk space requirement is 1 GB, and the recommended disk space is 10 GB.”}},{“@type”:”Question”,”name”:”Can SQL Server 2019 run on Windows Server 2008?”,”acceptedAnswer”:{“@type”:”Answer”,”text”:”nnNo, SQL Server 2019 cannot run on Windows Server 2008.”}},{“@type”:”Question”,”name”:”Can we install SQL 2019 on Windows Server 2016?”,”acceptedAnswer”:{“@type”:”Answer”,”text”:”nnYes, you can install SQL Server 2019 on Windows Server 2016. nnHere are the steps: n1. Download the SQL Server 2019 installation media from Microsoft. n2. Mount the installation media, and run setup.exe. n3. On the Installation tab, select New SQL Server stand-alone installation or add features to an existing installation. n4. On the Product Key page, enter the product key, and then click Next. n5. On the License Terms page, review the terms, select the I accept the license terms check box, and then click Next. n6. On the Global Rules page, click Next. n7. On the Feature Selection page, select the features that you want to install, and then click Next. n8. On the Installation Rules page, click Next. n9. On the Ready to Install page, click Install. n10. After the installation is complete, click Close.”}},{“@type”:”Question”,”name”:”Will SQL 2016 run on Windows 2008 R2?”,”acceptedAnswer”:{“@type”:”Answer”,”text”:”nnYes, SQL 2016 will run on Windows 2008 R2.”}},{“@type”:”Question”,”name”:”Can you restore a SQL 2012 database to SQL 2019?”,”acceptedAnswer”:{“@type”:”Answer”,”text”:”nnYes, you can restore a SQL 2012 database to SQL 2019. In order to do this, you will need to first take a backup of the SQL 2012 database. Once you have the backup, you will need to restore it to a SQL 2019 instance.”}},{“@type”:”Question”,”name”:”Is SQL Server 2008 R2 compatible with Windows Server 2019?”,”acceptedAnswer”:{“@type”:”Answer”,”text”:”nnYes, SQL Server 2008 R2 is compatible with Windows Server 2019.”}},{“@type”:”Question”,”name”:”Can we install SQL Server 2019 on Windows Server 2016?”,”acceptedAnswer”:{“@type”:”Answer”,”text”:”nnYes, you can install SQL Server 2019 on Windows Server 2016. Here are the steps:nn1. Download the SQL Server 2019 installation media from Microsoft.nn2. Mount the installation media and run the setup program.nn3. On the Installation Type page, select the Custom installation option.nn4. On the Specify Instance Configuration page, select the New SQL Server stand-alone installation or add features to an existing installation option.nn5. On the Feature Selection page, select the Database Engine Services and Management Tools features.nn6. On the Instance Configuration page, specify a name for the SQL Server instance.nn7. On the Disk Space Requirements page, ensure that there is sufficient disk space for the installation.nn8. On the Server Configuration page, specify the account to use for the SQL Server service.nn9. On the Database Engine Configuration page, specify the authentication mode to use.nn10. On the Ready to Install page, review the configuration options and click Install to begin the installation.”}},{“@type”:”Question”,”name”:”Is SQL Server 2019 still supported?”,”acceptedAnswer”:{“@type”:”Answer”,”text”:”nnYes, SQL Server 2019 is still supported. Microsoft currently offers mainstream support for SQL Server 2019 which began on October 2, 2019 and will continue until October 13, 2020. After that, extended support will be available until October 14, 2025.”}},{“@type”:”Question”,”name”:”What operating system does SQL Server run on?”,”acceptedAnswer”:{“@type”:”Answer”,”text”:”nnSQL Server is a relational database management system (RDBMS) developed by Microsoft. It runs on Windows Server operating system.”}},{“@type”:”Question”,”name”:”What is SQL Server compatibility level?”,”acceptedAnswer”:{“@type”:”Answer”,”text”:”nnSQL Server compatibility level indicates what version of SQL Server a database is compatible with. This is important because it determines which features are available to the database and which T-SQL syntax can be used. For example, a database with a compatibility level of SQL Server 2012 will be able to use features introduced in SQL Server 2012, but not features introduced in SQL Server 2014. To change the compatibility level of a database, use the ALTER DATABASE command.”}}]}
One of my hobbies is trying to break technology so that you don’t have to. I don’t consider myself a professional or hobbyist hacker, though if the shoe fits…
Last year when Windows Server 2019 was released I wanted to see which versions of SQL Server I could run on it, testing more the unwritten backward compatibility promise Microsoft has maintained over the last 45 years, rather than what the documentation says.
Speaking of documentation, Glenn Berry has a nifty compatibility matrix to show what versions of SQL Server are supported on each version of Windows Server. For official purposes, this is the list you should refer to:
SQL Server Version | Windows Server 2012 | Windows Server 2016 | Windows Server 2019 |
SQL Server 2019 | No | Yes | Yes |
SQL Server 2017 | Yes | Yes | Yes |
SQL Server 2016 | Yes | Yes | Yes |
SQL Server 2014 | Yes | Yes | Yes |
SQL Server 2012 | Yes | Yes | No |
SQL Server 2008 R2 | Yes | No | No |
SQL Server 2008 | Yes | No | No |
SQL Server 2005 | No | No | No |
SQL Server 2000 | No | No | No |
SQL Server 7.0 | No | No | No |
SQL Server 6.5 | No | No | No |
Supported versions of SQL Server and Windows Server, adapted from a matrix by Glenn Berry
But I know you’re not here for supported versions, because this post is about what Randolph managed to get running on Windows Server 2019, which as you know is a 64-bit operating system.
SQL Server 6.5 (32-bit)
Did it work? Yes.
Was it easy? No.
Comments: This was really tricky to get running, and it isn’t at all stable. Installation relied heavily on Windows compatibility mode, as well as renaming system files and the associated INI files that referred to those system files to avoid name collisions.
Summary: It works, but I don’t recommend it. The service is very fragile, and the process does not survive operating system restarts without some handholding. Obviously this is not for production use.
SQL Server 7.0 (32-bit)
Did it work? No.
Was it easy? No.
Comments: SQL Server 7.0 was Microsoft’s rewrite of the Sybase code base, where a significant number of changes were made to the SQL Server database engine. The installer is different to the 6.5 one (which reminded me of Windows 3.x days), and it just didn’t let me get far enough to manipulate the installer files appropriately.
Summary: It didn’t work. I gave up.
SQL Server 2000 (32-bit)
Did it work? Yes.
Was it easy? Relatively.
Comments: SQL Server 2000 needs to be installed using Windows compatibility mode (I used XP Service Pack 3). As I only tried installing the database engine and client tools, I did not bother with the things like replication and full text search.
Summary: It works. It survives an operating system restart. If you need to host a SQL Server 6.5 or 7.0 database, this is the way to do it, but I’d do it on Windows Server 2003 R2 instead. This is also not for production use.
SQL Server 2005 (64-bit)
Did it work? No.
Was it easy? Yes.
Comments: This one is sneaky because it lets you get very far in the process before failing. Provided you enable the .NET 3.5 feature in Windows Server, it gets all the way to the end before throwing an error about a corrupt registry key while trying to start the SQL Server service. I expect if I wanted desperately enough to get it to work, I could shim the registry key it’s failing on and get it working. Perhaps it just needs the sqlservr.exe to run in an earlier Windows compatibility level, but I didn’t try.
Summary: It didn’t work, but I didn’t bother digging too deep because databases in 2005 and higher compatibility level can be attached and restored on SQL Server 2016+, which makes it moot. Don’t use this for production.
SQL Server 2008 (64-bit)
Did it work? Yes.
Was it easy? Yes.
Comments: I only installed the database engine, and it worked fine. I was able to run SELECT @@VERSION;
from sqlcmd
and get a result. I could open SQL Server Configuration Manager, which meant I could control the service startup options, the network protocols, and trace flags.
Summary: It worked, but it is not officially supported by Microsoft. That said, SQL Server 2008 can host databases running in 80 and 90 compatibility level, so you can use SQL Server 2008 as an intermediary between SQL Server 2000 and SQL Server 2019. This is not supported for production.
SQL Server 2008 R2 (64-bit)
Did it work? Yes.
Was it easy? Yes.
Comments: This was exactly the same experience as SQL Server 2008.
Summary: If you don’t have the SQL Server 2008 installation media, but you have SQL Server 2008 R2, all the same things I wrote for SQL Server 2008 apply. Don’t do this for production.
SQL Server 2012 (64-bit)
Did it work? Yes.
Was it easy? Yes.
Comments: This was exactly the same experience as SQL Server 2008 and SQL Server 2008 R2.
Summary: Nothing much to report here. My rule of thumb is that if it is supported on Windows Server 2016, it will run on Windows Server 2019, but not as a production system.
SQL Server 2014 (64-bit) and higher
These are officially supported by Microsoft, so you should have smoother sailing.
Leave your thoughts in the comments below.
Photo by Steve Gale on Unsplash.
according to the documentation for SQL Server 2012 — no:
https://docs.microsoft.com/en-us/previous-versions/sql/sql-server-2012/ms143506(v=sql.110)?redirectedfrom=MSDN
Here it says that you are looking at Windows Server 2012 if you want to be in a supported configuration. That documentation is specific to SQL 2012, not an individual service pack, but the release notes for SP4 make no mention of «new» OS’s being supported configurations:
https://docs.microsoft.com/en-us/archive/blogs/sqlreleaseservices/sql-server-2012-service-pack-4-sp4-released
Will it run? Possibly. Randolph West has a good blog on supported versions and «will it run on Server 2019»:
Unsupported but working versions of SQL Server on Windows Server 2019
And Glenn Berry has a compatability matrix:
Randolph’s notes indicate that it does run on Sever 2019, but they would not use it as a production system.
The above is all just my opinion on what you should do.
As with all advice you find on a random internet forum — you shouldn’t blindly follow it. Always test on a test server to see if there is negative side effects before making changes to live!
I recommend you NEVER run «random code» you found online on any system you care about UNLESS you understand and can verify the code OR you don’t care if the code trashes your system.
Table of Contents
Upgrades from earlier versions to SQL Server 2019 (15.x)
SQL Server 2019 (15.x) supports upgrade from the following versions of SQL Server:
- SQL Server 2012 (11.x) SP4 or later
- SQL Server 2014 (12.x) SP2 or later
- SQL Server 2016 (13.x) SP2 or later
- SQL Server 2017 (14.x)
Operating System support for SQL Server 2019
- Windows 10 TH1 1507 or greater.
- Windows Server 2016 or greater.
Upgrade the existing SQL 2012 instance to SQL 2019
In-Place Upgrade from SQL Server 2012 to SQL Server 2019
2. Select Upgrade from a previous version of SQL Server in the Installation tab.
3. Select the Enter the product key option and type the product key if the product key is not filled automatically.
4. At Select Instance, select the instance of the SQL server that you want to upgrade.
5. Select Features to be upgrade.
In the Ready to Upgrade screen, the list of upgrade and installation criteria will be displayed. Click Upgrade to start the upgrade and installation.
Once the installation has completed successfully, the installed components will be displayed with a green icon.
6. In SQL Server Installation Center, select Tools | Installed SQL Server features discovery report to verify it works.