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

Applies to: SQL Server 2016 DeveloperSQL Server 2016 EnterpriseSQL Server 2016 Enterprise Core


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:


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.