SQL Server Tips

Dangerous SQL Server Builds

Updated August 4, 20262 min read

Why should you care about your build version of SQL Server?

There are known bugs and threats in specific build versions of SQL Server.

You may experience data corruption in the clustered indexes and high-security issues.

The online index rebuild can cause index corruption or data loss when it is used together with concurrent queries that modify many rows in specific builds of Microsoft SQL Server 2012 and Microsoft SQL Server 2014.

How to check it?

You can use the script below to check if you are using a dangerous build of SQL Server:

DECLARE @ProductVersion NVARCHAR(128)
	,@ProductVersionMajor DECIMAL(10, 2)
	,@ProductVersionMinor DECIMAL(10, 2)

SET @ProductVersion = CAST(SERVERPROPERTY('ProductVersion') AS NVARCHAR(128))

SELECT @ProductVersionMajor = SUBSTRING(@ProductVersion, 1, CHARINDEX('.', @ProductVersion) + 1)
	,@ProductVersionMinor = PARSENAME(CONVERT(VARCHAR(32), @ProductVersion), 2);

SELECT @ProductVersion AS YourSQLBuild
	,CASE 
		WHEN (
				@ProductVersionMajor = 11
				AND @ProductVersionMinor >= 3000
				AND @ProductVersionMinor <= 3436
				)
			OR (
				@ProductVersionMajor = 11
				AND @ProductVersionMinor = 5058
				)
			OR (
				@ProductVersionMajor = 12
				AND @ProductVersionMinor >= 2000
				AND @ProductVersionMinor <= 2342
				)
			THEN 'Build with high risk of security'
		WHEN (
				@ProductVersionMajor = 10
				AND @ProductVersionMinor >= 5500
				AND @ProductVersionMinor <= 5512
				)
			OR (
				@ProductVersionMajor = 10
				AND @ProductVersionMinor >= 5750
				AND @ProductVersionMinor <= 5867
				)
			OR (
				@ProductVersionMajor = 10.5
				AND @ProductVersionMinor >= 4000
				AND @ProductVersionMinor <= 4017
				)
			OR (
				@ProductVersionMajor = 10.5
				AND @ProductVersionMinor >= 4251
				AND @ProductVersionMinor <= 4319
				)
			OR (
				@ProductVersionMajor = 11
				AND @ProductVersionMinor >= 3000
				AND @ProductVersionMinor <= 3129
				)
			OR (
				@ProductVersionMajor = 11
				AND @ProductVersionMinor >= 3300
				AND @ProductVersionMinor <= 3447
				)
			OR (
				@ProductVersionMajor = 12
				AND @ProductVersionMinor >= 2000
				AND @ProductVersionMinor <= 2253
				)
			OR (
				@ProductVersionMajor = 12
				AND @ProductVersionMinor >= 2300
				AND @ProductVersionMinor <= 2370
				)
			THEN 'Build with high risk of corruption'
Figure 1 – Query output (Sample)
Figure 1 – Query output (Sample)

How to fix it?

  1. Install the latest service pack (SP) and latest cumulative update (CU) as soon as possible.
  2. If this can’t be done now, at least use MAXDOP=1 in index maintenance jobs (SQL Server Agent).
  3. Keep your SQL Server updated.

More information

Discover More

Discover what clients are saying about Red9

Red9 has incredible expertise both in SQL migration and performance tuning.

The single biggest benefit has been performance gains and tuning associated with migrating to AWS and a newer version of SQL Server with Always On clustering. Red9 was an integral part of this process.… The deep level of knowledge of MSSQL is incredible and the combined experience and expertise has been a huge asset.… Red9 was able to find a number of inefficient indexes and performance bottlenecks that resulted in over 400% improvement in latency.

Rich StaatsRich StaatsCloud EngineerMetalToad
See more testimonials