Applies ToSQL Server 2016 Developer SQL Server 2016 Enterprise SQL Server 2016 Enterprise Core SQL Server 2016 Standard SQL Server 2016 Service Pack 1 SQL Server 2017 on Windows (all editions) SQL Server 2017 on Linux (all editions) SQL Server 2019 on Linux SQL Server 2019 on Windows SQL Server 2022 on Windows (all editions) SQL Server 2022 on Linux (all editions)

症状

请考虑以下情况:

  • 使用 Microsoft SQL Server 的Always Encrypted功能对表中的列进行加密。

  • 为此表启用更改数据捕获 (CDC) 功能。

  • 加密列不包括在 捕获的列列表中

在这种情况下,尝试使用 sp_cdc_disable_table 系统存储过程为表禁用 CDC 时,可能会收到类似于以下内容的错误消息:  

Msg 22833,级别 16,状态 1,过程sp_cdc_disable_table_internal,Line LineNumber [Batch Start LineNumber] 无法更新指示表 TableName 未启用更改数据捕获的元数据。执行命令“sp_cdc_disable_table_tranx”时失败。返回的错误为 11430:“无法对列'ColumnName'启用更改数据捕获”。加密列不支持更改数据捕获。'。使用操作和错误来确定失败的原因并重新提交请求。

解决方法

以下SQL Server累积更新中修复了此问题:

SQL Server的每个新累积更新都包含以前的累积更新中包含的所有修补程序和所有安全修补程序。 查看SQL Server的最新累积更新:

更多信息

有关 SQL Server的 CDC 和Always Encrypted功能的详细信息,请参阅以下文章:

状态

Microsoft 已确认这是在“适用范围”部分中列出的 Microsoft 产品存在的问题。

参考

了解 Microsoft 用于描述软件更新 的术语

需要更多帮助?

需要更多选项?

了解订阅权益、浏览培训课程、了解如何保护设备等。

社区可帮助你提出和回答问题、提供反馈,并听取经验丰富专家的意见。