Я только что столкнулся с этой проблемой. Он загружает все данные в первый раз и оттуда фильтрует, как и ожидалось. Но было уже слишком поздно, ненужные данные уже загружены.
Хотите поделиться, как вы решили это?
При выполнении трассировки синхронизации это оператор выбора. (заменено оригинальное имя таблицы
's и' columns / keys ') имеет' @ sync_initialized = 0 ' в первый раз , и при последующей синхронизации он заменяется на' 1 ', поэтому он вводится в' блок else и, следовательно, фильтрация работает .
Ниже приведена выдержка из файла трассировки:
VERBOSE,, 1, 07.09.2010 15: 54: 32: 408, Использование команды:
"IF @sync_initialized = 0
ВЫБРАТЬ ИЗ
ELSE
НАЧАТЬ
ВЫБРАТЬ ИЗ
ПРИСОЕДИНИТЬСЯ
CHANGETABLE (CHANGES, @sync_last_received_anchor) CT ON CT. [KeyId] =. [KeyId]
ГДЕ (. [KeyId [in (выберите где = @ parm1))
AND (CT.SYS_CHANGE_OPERATION = 'I' И CT.SYS_CHANGE_CREATION_VERSION <= @sync_new_received_anchor AND (CT.SYS_CHANGE_CONTEXT IS NULL ИЛИ CT.SYS_CHANGE_CONTEXT <> @sync_binary))
IF CHANGE_TRACKING_MIN_VALID_VERSION (object_id (N ''))> @sync_last_received_anchor RAISERROR (Отслеживание изменений N'SQL-сервера очистило информацию отслеживания для таблицы ''% s ''. Чтобы исправить эту ошибку, клиент должен повторно инициализировать свою локальную базы данных и повторите попытку синхронизации. ', 16,3, N' ') END "
---------- значения parm, которые подставляются в запросе выше -----------
VERBOSE,, 1, 09.09.2010 15: 54: 32: 408, параметр: @sync_initialized Значение: 0
VERBOSE,, 1, 09.09.2010 15: 54: 32: 408, параметр: @sync_last_received_anchor Значение: 0
VERBOSE,, 1, 09.09.2010 15: 54: 32: 408, параметр: @sync_new_received_anchor Значение: 156
VERBOSE,, 1, 09.09.2010 15: 54: 32: 408, параметр: @sync_client_id_binary Len: 16 Значение: CE-5F-CB-9F-43-6E-71-4D-BE-5C-3C-9A -3 °-CA-0A-26