我需要将大约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
答案 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