• Thank you, that looks like something I can try doing.

    One question: why do I have to use dynamic sql? Why can't I just:

    -- Use a temp table to store results

    CREATE TABLE #Results (col_1 varchar(1), col_2 int);

    -- Use try catch blocks for each source table and dynamic sql

    BEGIN TRY

    INSERT INTO #Results

    SELECT col_1, col_2 FROM A;

    END TRY

    BEGIN CATCH

    PRINT 'Table A Does Not Exist';

    END CATCH;

    BEGIN TRY

    INSERT INTO #Results

    SELECT col_1, col_2 FROM B;

    END TRY

    BEGIN CATCH

    PRINT 'Table B Does Not Exist';

    END CATCH;

    BEGIN TRY

    INSERT INTO #Results

    SELECT col_1, col_2 FROM C;

    END TRY

    BEGIN CATCH

    PRINT 'Table C Does Not Exist';

    END CATCH;