No estoy familiarizado con esta función, pero si su problema es cómo consultar varias tablas usando CHANGETABLE()
entonces supongo que podría usar un procedimiento almacenado para recorrer todos los nombres de las tablas y ejecutar la consulta usando SQL dinámico:
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
Podrías combinar esto con un INSERT
en el SQL dinámico para escribir los resultados en una tabla que luego consulta para informes y análisis.