删除字段(同时会处理字段存在的约束)

ALTER procedure [csidbo].[dropcolumn]

@tablename varchar(30),

@columnname varchar(30)

AS

declare @Contraint varchar(50)

set @Contraint=''

if not exists( select * 

from syscolumns a

inner join sysobjects  b on a.id=b.id

where b.name=@tablename and a.name= @columnname

)

return 0

select @Contraint= b.name

from sysobjects a

inner join sysobjects b on a.id=b.parent_obj

inner join syscolumns c on b.id= c.cdefault and c.name=@columnname

 where a.name=@tablename

print @Contraint

  declare @sqltext varchar(200)

if @Contraint<>''

begin

  select @sqltext = ' Alter table '+@tablename +' drop constraint '+  @Contraint

  print @sqltext

  exec (@sqltext) 

end

    

  select @sqltext = ' Alter table '+@tablename +' drop column '+  @columnname

  print @sqltext

exec (@sqltext) 

posted @ 2011-07-28 11:32  坚持Delphi  阅读(308)  评论(0)    收藏  举报