通过循环添加列

时间:2013-05-30 08:43:27

标签: sql sql-server while-loop dynamic-sql alter-table

我创建了一个表#cinema

c_name c_count
   a      1
   b      2
   c      3
   d      4

和表#display

name id

如何将c_name添加到表#display作为列循环,如:

name id a b c d

这是我的代码

select @ccount = COUNT(c_count) from #cinema

set @count = 0
while @count < @ccount
begin
    select @cname = c_name from #cinema
    set @txt = 'alter table #display add ' + @cname + ' money default 0 with values'
    exec(@txt)
    set @count = @count+1
end

帮帮我吧。感谢

1 个答案:

答案 0 :(得分:0)

试试这个

DECLARE @dsql nvarchar(max) = N''  
SELECT @dsql += 
  'ALTER TABLE #display ADD ' + QUOTENAME(c_name) 
+ ' money DEFAULT 0 WITH VALUES ' + CHAR(13) + CHAR(10)
FROM #cinema
--PRINT @dsql
EXEC sp_executesql @dsql

SQLFiddle上的演示