在WHILE循环中使用变量作为列名称的一部分

时间:2016-09-21 08:15:51

标签: 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;

2 个答案:

答案 0 :(得分:0)

您可以构建动态sql代码段并执行它:

{
    "x": {
            "a1": { "b": {
                            "c1": { "d": { "e1": {}, "e2": {} } },
                            "c2": { "d": { "e3": {}, "e4": {} } }
                        }
                },
            "a2": { "b": {
                            "c3": { "d": { "e1": {}, "e5": {} } },
                            "c4": { "d": { "e6": {} } }
                        }
                 }
       }
}

答案 1 :(得分:0)

使用动态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;