而不是CDC表的触发器行为

时间:2012-10-31 13:15:04

标签: sql-server

我们在视图上有一个触发器(用于DML操作)。 我们正在尝试使用CDC表监视视图上的Activity,并且我们已经将基表(视图所基于的)定义为CDC表。

当我们在视图上运行更新命令(而不是触发触发器)时,cdc表中的输出是一行用于删除,一行用于更新(操作代码1然后操作代码2),我们期望找到一行值为bedore(操作码3)和一行后面的值(操作码4)。

你知道这是否是更新发生时的正常行为而不是在场景后面触发触发器(删除旧记录并插入新记录)?

请求帮助。

1 个答案:

答案 0 :(得分:0)

任何更新都可以实现为拆分更新(删除旧值,插入新值)。查询处理器通常会保护Halloween Protection(您今天必须发布您的问题!)。您的特定更新有一个广泛的计划(拆分更新)。你应该总是准备好处理这种情况,所以为什么它发生并不重要。是否具有替代更新触发器会强制实施广泛计划是一个正交问题。