Представьте, что у меня есть таблица с включенным отслеживанием изменений, и я обновляю столбец таблицы для данного первичного ключа. Значение, которое я обновляю, - это ТОЛЬКО значение, которое было ранее.CHANGE_TRACKING_IS_COLUMN_IN_MASK, когда значение не изменилось
Глядя на docs, MSDN говорит, что эта функция вернет true, если столбец находится в коллекции change_columns.
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 - да, это было бы и моим подозрением. На самом деле, я попробовал, и мы оба были правы. Идите инстинкты! –