You may see some articles saying that SQL Express does not require a license. That is not true – which you’ll find out when you try to install the software.
The license gives you free usage of the software which is a limited version of its big brother, SQL Server. However, the license forbids using SQL Express in certain types of systems.
This article explains everything you need to know.
Installation Requires Accepting The License
You cannot install SQL Express without accepting the Microsoft license.
You don’t need to agree to a license to download the installation software. The license is embedded within the install sequence.
When you run the install, the second screen displays the license agreement in a scrollable window.
As I show in the picture below, there is no way of continuing with the install without clicking the “Accept” button. The only alternative is to go back a screen or to X out of the process.
How To Find The SQL Express License
If you’ve already installed SQL Express, you may have forgotten that you accepted a license! It’s easy to click blindly through the install screens.
The installation process saves a copy of what you agreed to in the SQL Express application folder.
You can find the application folder on a Windows device under C:\Program Files\Microsoft SQL Server\
You may see several subfolders that are named as a number e.g. 150 or 100. Look in the subfolder named with the highest number.
The license is an RTF document in a subfolder named “License Terms”.
Here is what my folder structure looks like:
Every New Install Requires A License
As I will explain later, you can install multiple instances of SQL Express on one machine.
However, each new install requires accepting the free license again.
The install process detects your existing instance but still requires you to accept the license terms. You’ll see this message on the license screen:
One or more SQL Server instances detected. To install a second instance, click Accept.
How Many SQL Express Installs Can You Run?
Because each new install asks you to accept the license, there are no license restrictions on how many times you can install the database software.
However, there is a restriction on how many instances you can install on the same device.
All versions of SQL Server, including SQL Express, are limited to fifty instances on one machine.
If you’re searching for this in the official documentation, it’s described as “multi-instance support”.
I don’t recommend cramming that many instances together! You should never be near to reaching this limit.
Remember, one instance of SQL Express can hold plenty of databases.
The theoretical limit is 32,767 databases on one instance. Again, I don’t recommend that you go anywhere near that limit. But having ten or twenty databases isn’t a problem. The only issue is hitting your memory constraints.
How Many Users Are Allowed With SQL Express?
The license doesn’t specify the maximum number of users. Theoretically, this is unlimited.
However, there is a technical limit to how many simultaneous connections that SQL Express can accept. That number is 32,767.
Realistically, if you need a database that takes hundreds of user connections, SQL Express is probably not suitable.
Does The License Let You Use SQL Express As An Online Database?
I discussed that there is only a technical limit to the number of users of your database.
There’s a common misconception that this is about employees in a company. But that is not the case.
The SQL Express license lets you provide access to any number of online users within the technical limit of 32,767 concurrent connections.
In summary, you can deploy SQL Express as an online database behind a website or application.
Is SQL Express Licensed To Use On A Virtual Machine?
You may see articles saying that you’re not allowed install SQL Express on a virtual machine. That information is out of date.
At the time of writing (2022), we can use SQL Express 2017 on an Azure VM.
Of course, the operating system can be Windows. But Linux is also supported – specifically Red Hat, SUSE, or Ubuntu.
Can You Distribute SQL Express As Part Of Your Software?
The license lets you bundle or embed a SQL Express database as part of your software. Your customers won’t have to click on SQL Server licensing options.
At this point, I want to get into some of the small print of the license you accepted.
It explicitly prohibits you from using the SQL Server trademark or any other Microsoft trademark as part of your documentation or marketing.
You also can’t use a Microsoft trademark in your application’s name. For example, you couldn’t call your app something like “Bob’s SQL Express Marketing Tool”.
What The License Prohibits You From Doing
There are very few restrictions in the license document. I already mentioned that you can’t use Microsoft trademarks.
However, there are a few usages that are strictly prohibited.
There is a section labeled “No High-Risk Use” near the end of the license agreement that I suspect very few people (apart from me) have actually read.
You are not allowed use SQL Express in a system where a fault could cause physical harm.
For example, you can’t sell a SQL Express-backed system that controls cars or trucks. You can’t distribute software with an embedded SQL Express database that operates a pacemaker.
The reason is that SQL Express does not have features for fault tolerance, redundancy, or high availability.
If you need a database that is 99.99% stable and has an automatic copy that kicks in if the primary database is down, then SQL Express is not for you.
Technical Limitations That Are Part Of The License
Microsoft has throttled the power of SQL Express, which is why they are providing it with a free license.
The main restrictions are:
- 10 GB maximum database size
- 1 GB maximum memory
If you need more resources than this, you will need to upgrade to a Standard or Enterprise SQL Server license.