declare @sql nvarchar(max)set @sql = 'select * from sys.databases order by name'exec(@sql)exec sp_executesql @sql
declare @StartYear int = 2007, @SQLCmd nvarchar(max), @Params nvarchar(max);set @Params = N'@BranchID varchar(10), @DiscDate date');with quickTally(n) as (select top(year(dateadd(mm,6,getdate())) - @StartYear - 1) n from (values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9),(10))dt(n))select @SQLCmd = stuff((select char(13) + char(10) + 'select * from Table_' + cast(@StartYear + n as varchar) + '_' + cast(@StartYear + n + 1 as varchar) + ' where branchid = @BranchID and (disc_dte is null or disc_dte > @DiscDate) union all' from quickTally for xml path(''),TYPE).value('.','nvarchar(max)'),1,2,'') + char(13) + char(10) + 'select * from TableCurrent where branchid = @BranchID and (disc_dte is null or disc_dte > @DiscDate);';print @SQLCmd;exec sp_executesql @SQLCmd, @params = @Params, @BatchID = '950', @DiscDate = '20070630';
exec sp_executesql @SQLCmd, @Params, @BranchID = '950', @DiscDate = '20070630';