2016-09-21 2 views
2

Я хотел бы удалить несколько столбцов в таблице, как я могу использовать переменную как часть имени столбца в WHILE Loop? Благодарю.Использовать переменную как часть имени столбца в WHILE Loop

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

ALTER TABLE PC$ 
DROP COLUMN F+ @colnum 

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

Что такое 'F' в' DROP COLUMN F + @ colnum'? –

ответ

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) 
Смежные вопросы