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

S’applique à : SQL Server 2016 DeveloperSQL Server 2016 EnterpriseSQL Server 2016 Enterprise Core


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.


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)


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.