create proc p_create
@tbname sysname, --要创建的表名
@dt1 datetime, --开始时间
@dt2 datetime --结束时间
as
declare @s nvarchar(4000)
set @s='create '+quotename(@tbname)+'(
列1 int,
列2 int'
while datediff(month,@dt1,@dt2)>=0
select @s=@s+N',
'+quotename(convert(char(6),@dt1,112))
,@dt1=dateadd(month,1,@dt1)
exec(@s+N')')
月数累加
substring(convert(char,dateadd(m,1,@par1),112),1,6)create table ...
@par1 varchar(6),
@par2 varchar(6)
as
declare @begin datetime, @end datetime
declare @sql varchar(8000)
select @begin = cast( @par1 + '01' as datetime ), @end = cast( @par2 + '01' as datetime )set @sql = 'create table #tmp( 列1 类型, 列2 类型'
while( @begin <= @end ) begin
select @sql = ', [' + convert( varchar(6), @begin, 112 ) + '] 类型'
set @begin = dateadd( m, 1, @begin )
end
set @sql = @sql + ' )'--print @sql
exec( @sql )