• You could do something like:

    create table #tables (table_name varchar(80), completed datetime)

    insert #tables

    SELECT TABLE_NAME, null

    FROM INFORMATION_SCHEMA.TABLES

    WHERE TABLE_TYPE = 'BASE TABLE'

    while exists (select table_name from #tables where completed is null)

    begin

    select top 1 @table = table_name from #tables where completed is null

    ... exec code

    update #tables

    set completed = getdate()

    where table_name = @table

    end

    Use this to drive your system. Not sure it's much better than a cursor, but if you change #tables to some permanent table, you can track when things are happening, even restart if the job fails with a new table.