Поздно, но для будущих искателей. . .
Сообщение об ошибке несколько вводит в заблуждение. Параметры, которые вы передаете функции, должны быть «действительными», иначе вы получите это разочаровывающее сообщение об ошибке.
Вот цитата из статьи TechNet для SQL Server 2008 Использование данных об изменениях. Я рекомендую вам прочитать эту статью.
Мы рекомендуем проверять границы LSN, которые будут использоваться в запросе TVF, перед их использованием. Нулевые конечные точки или конечные точки, лежащие за пределами интервала действия для экземпляра отслеживания, приведут к тому, что TVF системы отслеживания измененных данных будет возвращена с ошибкой.
Например, следующая ошибка возвращается для запроса всех изменений, когда параметр, используемый для определения интервала запроса, недействителен или находится вне допустимого диапазона, или параметр фильтра строк недействителен.
Сообщение 313, уровень 16, состояние 3, строка 1
Для процедуры или функции указано недостаточное количество аргументов cdc.fn_cdc_get_all_changes_ ...
Соответствующая ошибка, возвращаемая для запроса чистых изменений, выглядит следующим образом:
Сообщение 313, уровень 16, состояние 3, строка 1
Для процедуры или функции указано недостаточное количество аргументов cdc.fn_cdc_get_net_changes_ ...
Когда я впервые начал использовать эти функции в SQL Server 2012, я передавал дикие параметры, которые находились далеко за пределами диапазона дат, захваченных CDC. Когда я их очистил, то есть начал использовать допустимые диапазоны дат, последовали хорошие результаты.
person
Gerald
schedule
21.04.2014