declare @sql char(50)
declare @tablename char(50)
set @tablename='kck'set @sql='select * from '+ @tablenameexec (@sql)
declare @tablename char(50)
set @tablename='kck'set @sql='select * from '+ @tablenameexec (@sql)
create proc p_qry
@date_begin datetime,
@date_end datetime
as
declare @s nvarchar(4000),@i int
select @s='',@i=0
while datediff(year,@date_begin,@date_end)>=@i
select @s=@s+' union all select * from tb_'+datename(year,dateadd(year,@i,@date_begin))
,@i=@i+1
set @s='select * from('
+stuff(@s,1,11,'')
+')a where 时间 between @date_begin and @date_end'
exec sp_executesql @s
,N'@date_begin datetime,@date_end datetime'
,@date_begin,@date_end
go
as
select * from tb_2003
union all
select * from tb_2004
go--然后每年新加表的时候,修改视图,把新表加入视图中查询的时候直接从视图中查数据就行了.