T-SQL批量删除列

oklion 2016-08-28 10:55:31
导入的时候没注意列号除了有效列之外又导入了F9至F255,一共200多列,想用语句批量删除,具体如何实现,谢谢
...全文
123 点赞 收藏 4
写回复
4 条回复
中国风 2016年08月29日
DECLARE @Sql NVARCHAR(MAX)
SET @Sql=(SELECT TOP (255-8) 'ALTER TABLE 表名 DROP COLUMN F'+RTRIM(9+number)+';' FROM master.dbo.spt_values WHERE type='P' AND number>=0 FOR XML PATH(''))
--显示语句
--PRINT @Sql;
EXEC(@Sql)
回复 点赞
卖水果的net 2016年08月29日

USE test
declare @sum int = 10
declare @sql varchar(500)
while @sum<256 
begin
    set @sql = 'alter table vlaninfo drop COLUMN F' + CAST(@sum as nvarchar)
    exec (@sql)
    set @sum = @sum + 1 
end 
go

回复 点赞
oklion 2016年08月28日
USE xtgd declare @no1 int,@sum int,@col nvarchar select @sum=10,@no1=0,@col='F' test_target: set @no1=@no1+1 set @sum=@sum+@no1 set @col='F' + CAST(@sum as nvarchar) while @sum<256 goto test_target alter table vlaninfo drop COLUMN @col 为什么语句最后的@col一直报错呢? 另外可以的话各位高手给个if语句的么?
回复 点赞
发动态
发帖子
疑难问题
创建于2007-09-28

9309

社区成员

12.1w+

社区内容

MS-SQL Server 疑难问题
社区公告
暂无公告