FIX: The CHANGETABLE function in a query returns incorrect results if change tracking is enabled in SQL Server 2012 or SQL Server 2014

Consider the following scenario:

  • You enable change tracking for a SQL Server database table in Microsoft SQL Server 2012 or SQL Server 2014.
  • The base table contains very few rows of data. For example, the table contains one row.
  • The change tracking side table (internal system table) contains approximately 1,000 rows of data.
  • The syscommittab system table contains lots of rows. For example, the table contains 1.5 million rows.
In this scenario, when you run a query to determine which changes are made by using the CHANGETABLE function, SQL Server might use a plan that uses a hash match aggregate instead of a sort. Therefore, SQL Server returns incorrect information about the changes.

Update information

This issue was first fixed in the following cumulative update for SQL Server:
Recommendation: Install the latest cumulative update for SQL Server

Each new cumulative update for SQL Server contains all the hotfixes and all the security fixes that were included in the previous cumulative update. Check out the latest cumulative updates for SQL Server:

Note You can find information about the latest SQL Server builds from Where to find information about the latest SQL Server builds.
Microsoft has confirmed that this is a problem in the Microsoft products that are listed in the "Applies to" section.
Learn about the terminology that Microsoft uses to describe software updates.

Article ID: 3125525 - Last Review: 05/31/2016 06:25:00 - Revision: 4.0

Microsoft SQL Server 2012 Service Pack 3, Microsoft SQL Server 2014 Service Pack 1, Microsoft SQL Server 2014 Developer, Microsoft SQL Server 2014 Enterprise, Microsoft SQL Server 2014 Standard

  • kbqfe kbfix kbexpertiseinter kbsurveynew KB3125525