我正在使用sql server更改跟踪,我注意到一些似乎没有记录的意外行为。
该文档指出在使用ChangeTable返回的更改之前,CHANGE_TRACKING_MIN_VALID_VERSION ( table_object_id )
返回的值应与上一个同步版本进行比较。这是有道理的,所以我编写了我的同步过程进行此检查,然后通过调用CHANGE_TRACKING_CURRENT_VERSION
存储值返回。这是我引用的documentation。
下次运行同步过程时,它比较了这两个值,并且最小有效版本再次大于上一个同步版本。经过故障排除后,我意识到CHANGE_TRACKING_CURRENT_VERSION
返回的当前版本实际上小于最小有效版本。
这是预期的行为吗?我可以通过存储最小有效版本来解决它,如果它比当前版本大。我注意到,一旦对启用了更改跟踪的表进行了更改,当前版本就会增加。这可能只是开发环境中的一个问题,因为我使用的数据库很少改变。我只是想确保我没有错过任何东西。