如:TEST表中有多列。A,B,C,D,E,F,G
C、D、E列值为0
如何删除C,D,E列。使TEST表的列变为A,B,F,G.
谢谢!
------解决方案--------------------
declare @name varchar(30),@typename varchar(30)
declare mycursor cursor for select quotename(a.name,']'),b.name from sys.columns a
join sys.types b on a.user_type_id=b.user_type_id
where object_id=object_id('test')
open mycursor
fetch next from mycursor into @name,@typename
while @@fetch_status=0
begin
declare @sql varchar(max)
if (@typename='int')
begin
set @sql=' if exists(select * from test where '+@name+'=0 )
alter table test drop column '+@name
exec (@sql)
--print @sql
end
fetch next from mycursor into @name,@typename
end
close mycursor
deallocate mycursor