FIX: Couldn't disable "change data capture" if any column is encrypted by "Always Encrypted" feature of SQL Server 2016 or 2017

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

Symptoms


Assume that you use the Always Encrypted feature of Microsoft SQL Server 2016 or 2017 to encrypt a column in the table. You now enable the Change Data Capture (CDC) for this table, and the encrypted column is not included in the captured_column_list. In this scenario, when you try to use the system stored procedure sp_cdc_disable_table to disable CDC for the table, you may receive an error message that resembles the following:  

Msg 22833, Level 16, State 1, Procedure sp_cdc_disable_table_internal, Line LineNumber [Batch Start Line LineNumber]
Could not update the metadata that indicates table TableName is not enabled for Change Data Capture.
The failure occurred when executing the command 'sp_cdc_disable_table_tranx'.
The error returned was 11430: 'Cannot enable change data capture on column 'ColumnName'.
Change data capture is not supported for encrypted columns.'.
Use the action and error to determine the cause of the failure and resubmit the request.

Resolution


This issue is fixed in the following cumulative updates for SQL Server:

       Cumulative Update 1 for SQL Server 2017

       Cumulative Update 8 for SQL Server 2016 RTM

       Cumulative Update 5 for SQL Server 2016 SP1

More Information


To get more information about Change Date Capture and Always Encrypted features of SQL Server, please visit the following links:

About Change Data Capture in SQL Server

Always Encrypted (Database Engine)

Status


Microsoft has confirmed that this is a problem in the Microsoft products that are listed in the "Applies to" section.

References


Learn about the terminology that Microsoft uses to describe software updates.