Не съм запознат с тази функция, но ако проблемът ви е как да правите заявки за множество таблици с помощта на CHANGETABLE()
тогава предполагам, че бихте могли да използвате съхранена процедура, за да преминете през всички имена на таблици и да изпълните заявката с помощта на динамичен SQL:
declare
@sql nvarchar(max),
@parameters nvarchar(max),
@TableName nvarchar(128),
@Version bigint
set @Version = CHANGE_TRACKING_CURRENT_VERSION()
declare Tables cursor local fast_forward
for
select name from sys.tables where... -- add conditions here if necessary
open Tables
fetch next from Tables into @TableName
while @@fetch_status = 0
begin
set @sql = N'select * from CHANGETABLE(CHANGES ' + quotename(@TableName) + ', @LastVersion)ct order by sys_change_version desc'
set @parameters = N'@LastVersion bigint'
exec sp_executesql @sql, @parameters, @LastVersion = @Version
fetch next from Tables into @TableName
end
close Tables
deallocate Tables
Можете да комбинирате това с INSERT
в динамичния SQL, за да запишете резултатите в таблица, която след това да заявите за отчитане и анализ.