日期:2014-05-18  浏览次数:20540 次

sql语句动态添加列名的问题
我建个临时表,用个循环,把查到的产品名称作为列名添加到这个临时表中,但添加列的地方报语法错误

create table #Main(产品 varchar(50))

declare @sql int 
declare @sql_new float 

set @sql = 1

while(@sql<= 5)
begin
select @sql_new = prodctname from product where id=@sql --@sql_new 就是新的列名

alter table #Main add @sql_new float --就是这个地方报错 

set @sql_f=@sql_f+1
end

帮帮忙


------解决方案--------------------
create table #t (id int)

alter table #t add c1 int

declare @c varchar(10)
set @c='c2'
exec('alter table #t add '+@c+' int')

select * from #t
/*
id c1 c2
----------- ----------- ----------- 
*/

drop table #t