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

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

最佳答案

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

关于sql - 在 WHILE 循环中使用变量作为列名的一部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39611035/

相关文章:

sql - 棘手的事件记录关系——多态双向自引用

mysql - 如何确定 SQL 查询何时结束?

mysql - 无法弄清楚为什么 mySql 数据库语法无法编译

c# - 为什么我的 SQL 表中会出现@firstname 和@lastname?

sql - 如何在 SQL 的时区中使用 'America/New_York '

sql - sql查询中的总行数---sql server 2008

mysql - sql中的不同表可以使用相同的外键吗

sql-server - 获取 12 月 31 日的正确周数

找不到 SQL 参数

sql-server - 水平连接两个查询