SQL利用临时表实现动态列、动态添加列

--方法一---------------------------------------------------------------------

declare @sql as varchar(1000)
declare @i as int
set @i = 0
set @sql = 'create table tb ('
while @i <= 10
begin
  set @sql = @sql +
  '[' + convert(varchar(10),dateadd(day , @i , getdate()),120) + '] int ,'
  set @i = @i + 1
end
set @sql = left(@sql , len(@sql) - 1) + ') select * from tb'
exec(@sql)

--方法二---------------------------------------------------------------------

declare @sql as varchar(1000)
declare @i as int
set @i = 0
create table #tb( id int )
while @i <= 10
begin
 SET @sql = 'ALTER TABLE #tb ADD ['+ convert(varchar(10),dateadd(day , @i , getdate()),120) +'] NVARCHAR(100) NULL'
 execute (@sql)
 set @i = @i + 1
end
select * from #tb
drop table #tb

原文地址:https://www.cnblogs.com/xytmj/p/xytmj_SQL_Active_Col.html