create table column_test (t0 int)
declare @i int
declare @t varchar(2)
select @i=1
while @i<=5
begin
select @t='t'+ltrim(str(@i))
alter table column_test add @t int --出错行
@i=@i + 1
end上面的代码执行完后系统提示:
服务器: 消息 170,级别 15,状态 1,行 1
第 1 行: '@t' 附近有语法错误。求助列变量是否支持的问题,或者有无其他解决办法.
declare @i int
declare @t varchar(2)
select @i=1
while @i<=5
begin
select @t='t'+ltrim(str(@i))
alter table column_test add @t int --出错行
@i=@i + 1
end上面的代码执行完后系统提示:
服务器: 消息 170,级别 15,状态 1,行 1
第 1 行: '@t' 附近有语法错误。求助列变量是否支持的问题,或者有无其他解决办法.
create table column_test (t0 int)
declare @i int
declare @t varchar(2)
declare @sql varchar(8000)
select @i=1
while @i<=5
begin
select @t='t'+ltrim(str(@i))
set @sql='alter table column_test add '+rtrim(@t)+' int' --出错行
exec(@sql)
set @i=@i + 1
end
declare @i int
declare @t varchar(2),@s varchar(5000)
select @i=1
while @i<=5
begin
select @t='t'+ltrim(str(@i))
set @s='alter table column_test add '+ @t+' int' --出错行
exec(@s)
@i=@i + 1
end
declare @i int
declare @t varchar(2)
select @i=1
while @i<=5
begin
select @t='t'+ltrim(str(@i))
Select @t
EXEC('alter table column_test add ' + @t +' int') --出错行
Select @i=@i + 1
end
declare @i int
declare @t varchar(2)
declare @sql varchar(1000)
select @i=1
while @i<=5
begin
select @t='t'+ltrim(str(@i))
@sql='alter table column_test add ' + @t +' int'
exec(@sql)
@i=@i + 1
end
也要改為
Select @i=@i + 1