FIX: Data loss when you alter column operation on a large memory-optimized table in SQL Server 2016

In SQL Server 2016, on a memory-optimized table, most ALTER TABLE scenarios now run in parallel and result in an optimization of writes to the transaction log. However, alter column operations on a large memory-optimized table that run in parallel may result in data loss. 

NoteALTER TABLE operations run single-threaded and are not affected by this issue.

The issue was first fixed in the following cumulative update of 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 with the previous cumulative update. We recommend that you download and install the latest cumulative updates for SQL Server:
To work around this issue, turn off the log-optimized for the alter operations by enabling trace flag 9909. 

To enable trace flag 9909, add the -T9909 startup parameter. Or, you can use the dbcc traceon(9909) statement for a specific session.
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: 3174963 - Last Review: 07/25/2016 23:38:00 - Revision: 1.0

Microsoft SQL Server 2016 Developer, Microsoft SQL Server 2016 Enterprise, Microsoft SQL Server 2016 Enterprise Core, Microsoft SQL Server 2016 Standard

  • kbqfe kbfix kbsurveynew kbexpertiseadvanced KB3174963