Sql-server – Should I install SQL Server 2012 SP3 when I’m already running SQL Server 2014

installationservice-packsql serversql server 2014sql-server-2012

We've been running SQL Server 2014 for almost a year now, but SQL Server 2012 SP3 continues to appear in the Windows Update list (as an optional install). It seemed ridiculous to install a service pack from a previous version, so I've just ignored it.

However, we've recently started encountering an assertion failure (see below for more info), and one thing we're doing to try and resolve it is making sure the server is fully patched. We installed the latest cumulative update for 2014, but it hasn't solved the problem or made that SP3 item disappear from Windows Update. SP3 still wasn't on my radar, but then I found a Microsoft Product Support Services blog post that said to use the Best Practices Security Analyzer to try and troubleshoot assertion failures, and when I did it raised a warning that we hadn't applied that SP3.

So now I am considering applying that install, but I'm worried that I'm going to accidentally downgrade my server – not that we'd go back 2012 entirely, but that some of the cumulative updates might get reverted, or some other bizarre behvaior.

(This is not the exact assertion failure we've been receiving, but it's close. I cannot find a KB article that seems to describe the actual issue we're having – the KB linked in the previous sentence has to do with TOP N and ours has to do with a procedure using OFFSET X ROWS FETCH NEXT Y ROWS ONLY. The actual assertion failure is SQL Server Assertion: File: <op_ppqte.cpp>, line=12258)

Best Answer

Windows Update isn't offering you a Service Pack for SQL Server 2012 to apply to your SQL Server 2014 instance; there is something else on your machine that is triggering it. Could be dozens of things, but most commonly:

  • The SQL Server 2014 instance isn't the only instance on your machine. You may have SQL Express installed (on its own, or as part of Visual Studio, or as part of some other software), SQLLobalDB, or some other instance that is still at SQL Server 2012 < SP3.
  • You have other services like SSIS, SSRS, SSAS, etc. that are from 2012 and weren't upgraded as part of the move to 2014.
  • You have shared 2012 components - e.g. you upgraded your 2012 engine but you didn't upgrade the tools, or the upgrade to the tools failed, or you installed 2012 tools after the upgrade.

Here is what I suggest.

Go download the SQL Server 2012 SP3 standalone installer:

When you run the installer, very early in setup, you'll get to a screen like this, which will tell you all of the components that are eligible for upgrade:

enter image description here

This will give you an indication of what components you need to either patch or remove.

I do not think you should ignore this. If you have other instances on this machine and don't want them there, clean them up! If you do need them, but leave them unpatched, it could be a security vulnerability waiting to happen. There is just no upside at all to ignoring the prompt to apply the service pack - you're getting it for a reason.

As for the assertion error you're getting, that has nothing to do with the SQL Server 2012 Service Pack you're being offered, either. It could be an indication that you are on RTM still and are missing a fix for that problem (in which case, go get the latest SP + CU, or that you've come across a bug that hasn't yet been fixed (in which case contact SQL Server support). Note that a fix may cover your issue even if your exact error message isn't listed explicitly in the knowledge base article.