SQL Server Tips

Dangerous SQL Server Builds

Updated August 4, 20262 min read

Written byMark Varnas

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 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 integral to this process. The deep knowledge of MSSQL and combined experience of Red9 have been a huge asset during a difficult migration. Red9 found inefficient indexes and performance bottlenecks that improved latency by over 400%.

Rich StaatsRich StaatsCloud EngineerMetalToad
See more testimonials