想象一下,我有一個啓用了更改跟蹤的表,並且我爲給定的主鍵更新了一列表。我更新的值與之前已經存在的SAME值相同。CHANGE_TRACKING_IS_COLUMN_IN_MASK當值沒有改變時
查看docs,MSDN表示如果該列位於集合change_columns中,此函數將返回true。
CHANGE_TRACKING_IS_COLUMN_IN_MASK返回以下值。
0:指定的列不在change_columns列表中。
1:指定的列位於change_columns列表中。
展望further,在change_columns列表是圍繞CHANGETABLE.SYS_CHANGE_COLUMNS屬性,它被定義爲一個包裝:
列出自last_sync_version(在 基線)已更改的列。
這是不明確的。在這種情況下,「改變」是什麼意思?如果這個值是相同的,那麼它是否改變了?
任何人都知道答案?
我懷疑爲了保持跟蹤機制的輕量級,它不會比較前後的值,而是使用類似於(如果不是完全)columns_updated函數的機制。 –
@BenThul - 是的,這也是我的懷疑。事實上,我嘗試過,我們都是正確的。去直覺吧! –