Неверное имя объекта «CHANGETABLE» - PullRequest
2 голосов
/ 21 марта 2019

Я только что включил отслеживание изменений, включив ALLOW_SNAPSHOT_ISOLATION , выполнив этот запрос, чтобы включить отслеживание изменений для базы данных

ALTER DATABASE [DatabaseName] 
SET CHANGE_TRACKING = ON (CHANGE_RETENTION = 2 DAYS,AUTO_CLEANUP = ON)

и, наконец, включить его на столе

ALTER TABLE [TableName] 
ENABLE CHANGE_TRACKING WITH (TRACK_COLUMNS_UPDATED = OFF)

Теперь, когда я звоню

SELECT * 
FROM CHANGETABLE(CHANGES, 0)

Я получаю это сообщение об ошибке:

Неверное имя объекта «CHANGETABLE».

Версия базы данных - SQL Server 2012. Как CHANGETABLE может быть недействительным и как я могу заставить его работать? Я предполагал, что это будет работать из коробки, потому что это системная функция. Это даже выделено в SQL Server Management Studio. Я изменил немного данных между включением отслеживания изменений и вызовом CHANGETABLE().

1 Ответ

2 голосов
/ 21 марта 2019

Правильный синтаксис равен

SELECT * FROM CHANGETABLE(CHANGES MyTableName,@last_version) as SomeAlias

Это показано в примерах документации :

DECLARE @last_sync_version bigint;  
SET @last_sync_version = <value obtained from query>;  

SELECT [Emp ID], SSN,  
    SYS_CHANGE_VERSION, SYS_CHANGE_OPERATION,  
    SYS_CHANGE_COLUMNS, SYS_CHANGE_CONTEXT   
FROM CHANGETABLE (CHANGES Employees, @last_sync_version) AS C;

Забывание имени таблицы приводит к Invalid object name 'CHANGETABLE'

Забывание псевдонима таблицы приводит к A table returned by the CHANGETABLE function must be aliased.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...