我在两台服务器之间设置了事务复制,我注意到如果运行类似于此的语句:
更新 mytable SET mycolumn = mycolumn
复制以某种方式知道忽略此事务并且它不会应用于订阅者。我已通过运行 SQL Profiler 以及将 TIMESTAMP 列添加到我的订阅者表(它不会更改)来确认它。我怀疑有某种机制可以实现这种“智能”行为,我想知道是否有人可以阐明它。
谢谢!
我在两台服务器之间设置了事务复制,我注意到如果运行类似于此的语句:
更新 mytable SET mycolumn = mycolumn
复制以某种方式知道忽略此事务并且它不会应用于订阅者。我已通过运行 SQL Profiler 以及将 TIMESTAMP 列添加到我的订阅者表(它不会更改)来确认它。我怀疑有某种机制可以实现这种“智能”行为,我想知道是否有人可以阐明它。
谢谢!
事务复制通过读取事务日志来工作。
这种“非更新更新”往往不会产生任何事务日志记录。
有关详细信息,请参阅 Paul White 的文章The Impact of Non-Updating Updates。