• This will fix what you have:

    Declare @loopYrbeg int

    Declare @loopYrend int

    Declare @tablename sysname

    Declare @SQL varchar(MAX)

    Set @loopYrbeg = 2007

    Set @sql = ''

    begin

    While @loopYrbeg < year( getdate() )

    begin

    Set @loopYrend = @loopYrbeg + 1

    Set @tablename = 'Table_' + CONVERT(varchar(4), @loopYrbeg) + '_' + CONVERT(varchar(4), @loopYrend)

    Set @sql = @sql + 'select * from ' + @tablename +char(10)+

    'WHERE BRANCHID=''950'' AND (DISC_DTE IS NULL OR DISC_DTE > 20070630)' + char(10) +

    'union' + char(10)

    Set @loopYrbeg = @loopYrbeg + 1

    end

    set @SQL = left(@sql, LEN(@sql) - 6)

    print (@sql)

    end

    ______________________________________________________________________________
    How I want a drink, alcoholic of course, after the heavy lectures involving quantum mechanics.