Sql 在WHILE循环中将变量用作列名的一部分

Sql 在WHILE循环中将变量用作列名的一部分,sql,sql-server,Sql,Sql Server,我想删除表中的多个列,如何在WHILE循环中将变量用作列名的一部分?谢谢 DECLARE @colnum INT Set @colnum = 13 WHILE @colnum <=37 BEGIN ALTER TABLE PC$ DROP COLUMN F+ @colnum SET @colnum = @colnum +1 END; DECLARE@colnum INT 设置为@colnum=13 当@colnum时,您可以构造一个动态sql代码段并执行它: declare @sq

我想删除表中的多个列,如何在WHILE循环中将变量用作列名的一部分?谢谢

DECLARE  @colnum INT
Set @colnum = 13
WHILE @colnum <=37
BEGIN

ALTER TABLE PC$
DROP COLUMN F+ @colnum

SET @colnum = @colnum +1
END;
DECLARE@colnum INT
设置为@colnum=13

当@colnum时,您可以构造一个动态sql代码段并执行它:

declare @sql nvarchar(max)
set @sql = N'alter table pc$ drop column f' + cast(@colnum as nvarchar(16))
exec (@sql)
使用动态SQL

DECLARE  @colnum INT
Declare @strsql varchar(max)
Set @colnum = 13
WHILE @colnum <=37
BEGIN

set @strsql ='ALTER TABLE PC$
DROP COLUMN F' + cast(@colnum as varchar(20))

exec(@strsql )

SET @colnum = @colnum +1
END;
DECLARE@colnum INT
声明@strsql varchar(最大值)
设置为@colnum=13

而@colnum在
下拉列F+@colnum
中的
F
是什么?