无效的对象名称“ CHANGETABLE”

时间:2019-03-21 15:40:06

标签: sql-server tsql sql-server-2012 change-tracking invalid-object-name

我刚刚通过打开 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 Server2012。CHANGETABLE如何无效?如何使之工作?我认为它是开箱即用的,因为它是系统功能。它甚至在SQL Server Management Studio中突出显示。在打开变更跟踪和调用CHANGETABLE()之间,我修改了一些数据。

1 个答案:

答案 0 :(得分:1)

correct syntax

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

这在documentation examples中显示:

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.