将列添加到现有表

时间:2011-03-17 09:29:41

标签: sql tsql

我需要将大约600列添加到现有表中以进行测试

declare @counter int
    set @counter = 1
    while @counter < 601
    begin

    ALTER TABLE Info ADD column+@counter varchar(max);
    set @counter = @counter + 1

    end

列名应该类似于column1,column2 .... column600

3 个答案:

答案 0 :(得分:4)

由于这纯粹是为了测试快速而肮脏的方法,所以:

declare @counter int
set @counter = 1
declare @sql varchar(2000)

while @counter < 601
begin

Set @Sql = 'ALTER TABLE Info ADD column'+convert(varchar(10),@counter)+ ' varchar(max)'
Exec (@Sql)
set @counter = @counter + 1

end

虽然我不得不怀疑为什么你想要一个表中的600列

答案 1 :(得分:1)

使用动态sql执行 -

SET @str = 'ALTER TABLE Info ADD column' + CAST(@counter as varchar(5)) + ' varchar(max)';
EXEC ( @str );
GO

答案 2 :(得分:0)

使用Exec功能:

Declare @SQL VarChar(1000)
Declare @vary varchar(100)
Declare @final varchar(1000)

SELECT @SQL = 'ALTER TABLE '
SELECT @SQL = @SQL + @TableName
select @vary = 'add column ' + id
select @final = @sql + @vary

Exec ( @final)
GO