SQL Server 2016 – Checking Expiration Date

sql serversql-server-2016

I have a question about the installation of SQL Server 2016.

We Installed a trial version tha was made on 2017/09/19

According to the script that I execute in the database, the expiration date was 2018/03/18 but we can still use it without problems.

The Sharepoint site that uses this DB does not give any errors or warnings legends that it is expired or that some features are no longer available. I can also enter from MSQLServer Management Studio and execute scripts, create new DB, etc.

How can exactly know the expiration date?

SELECT
@@SERVERNAME as SERVERNAME,
CREATE_DATE as INSTALALTIONDATE,
SERVERPROPERTY('EDITION') as Version,
DATEADD(DD, 180, CREATE_DATE) AS "EXPIRY DATE"
FROM SYS.SERVER_PRINCIPALS
WHERE SID = 0X010100000000000512000000

SERVERNAME      INSTALLATIONDATE        Version                                 EXPIRY DATE
SAHARCVSPS02    2017-09-19 13:15:20.967 Enterprise Evaluation Edition (64-bit)  2018-03-18 13:15:20.967

Best Answer

SQL Server doesn't stop the service when it hits the expiration. Instead, it is checked when the service starts. If you restart the service, or reboot, or your system crashes, when it tries to come back up, it won't start.

So I'd take your backups, clean SQL Server off the machine entirely (since other components like SSMS might still give you expiration issues) and fix this - before you have to restart the service or reboot and you're not prepared.

David points out that upgrading from eval to full license is supported, but I avoid that because I’ve had more than one experience where that definitely did not go smoothly. Hopefully this isn’t production, where eval should never have been used in the first place, but in any case I think it is cleaner and safer to nuke and pace than try an in-place upgrade. Those have a variety of potential pitfalls even when an expired eval edition isn’t part of the mix.

I have a post about fully removing evaluation edition, but please don't start this process until you've validated your backups are all good and you've scripted logins, jobs, linked servers etc.

The actual date isn't important now, IMHO. If you have sour milk in the fridge, it's sour, and you should throw it away, whether it expired on Easter or on Christmas. Also note that some components may expire sooner, e.g. if you install SSMS along with one instance of eval edition, then install another instance of eval edition later, SSMS will expire with the first one, not the second.