2016-09-21 9 views
2

テーブル内の複数の列を削除したいのですが、どのように変数をWHILEループの列名の一部として使用できますか?ありがとう。WHILEループの列名の一部として変数を使用

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

ALTER TABLE PC$ 
DROP COLUMN F+ @colnum 

SET @colnum = @colnum +1 
END; 
+0

「DROP COLUMN F + @ colnum」には「F」とは何ですか? –

答えて

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; 
+0

ありがとう!それは非常にうまくいく –

0

動的SQLスニペットを構築し、それを実行できます。

declare @sql nvarchar(max) 
set @sql = N'alter table pc$ drop column f' + cast(@colnum as nvarchar(16)) 
exec (@sql) 
関連する問題