【问题标题】:adding column though loop通过循环添加列
【发布时间】:2013-05-25 18:11:31
【问题描述】:

我创建了一张桌子#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

请帮帮我。谢谢

【问题讨论】:

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


    【解决方案1】:

    试试这个

    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上的演示

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-01-20
      • 2015-02-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-09
      • 2016-08-25
      • 2019-03-02
      相关资源
      最近更新 更多