【问题标题】:Enabling Change Data Capture (CDC) for a specific DML operation为特定 DML 操作启用变更数据捕获 (CDC)
【发布时间】:2017-01-17 07:48:09
【问题描述】:

是 CDC 的新手。是否可以在 SQL Server 2012 中为特定的 DML 操作启用更改数据捕获?我知道默认情况下它启用插入、删除和更新。如果我只想启用更新,那么我该如何实现呢?

另外请告诉我,CDC 与触发器相比如何更好?

【问题讨论】:

    标签: sql sql-server-2012 change-data-capture


    【解决方案1】:

    基本上,您不能在源头上拆分操作,但之后您可以只提取您想要的操作。

    您将为 CDC 启用该表并指定您需要管理的列。 输出表是 cdc.{Instancename}_CT,您可以从中仅提取具有操作 3 和 4 的行,这些行与 before_update (3) 和 after_update(4) 相关。

    如果您只对任何给定表格行的结果值感兴趣,您应该使用 net_changes。

    【讨论】:

    • 抱歉,我错过了问题的第二部分。 CDC 相对于触发器的简单优势是它们与 DML 操作异步。他们从日志中读取而不是从表中读取,因此触发器与操作本身一起触发,因此,如果触发器中出现任何问题,通常会导致引发错误并需要回滚所做的更改。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-12
    • 1970-01-01
    • 2020-06-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多