我一个库里有好多表
但是结构都一样
表名也有规律
如下
A001
A002
A003
B001
B002
B003
然后他们里面都有几个相同的字段
比如都有 name city
我现在想删除这些字段
能同时更新这些表么?

解决方案 »

  1.   

    declare @TName varchar(100)
    declare @sql varchar(8000)
    declare @i int
    set @i=1
    set @TName='A00'
    while @i<N
       begin 
           set @sql='alter table '+@TName+cast(@i as varchar)+' delete colum name_city
           exec(@sql)
           set @i=@i+1
       end
      

  2.   

    不能同时更新.
    写个游标逐行处理每个表
    alter table tablename drop column columnname1
    alter table tablename drop column columnname2
    alter table tablename drop column columnname...
    alter table tablename drop column columnnamen
      

  3.   

    exec sp_MSforeachtable @command1="alter table ? drop column name",
                           @whereand = ' and o.name like ''[A-Z][0-9][0-9][0-9]'''exec sp_MSforeachtable @command1="alter table ? drop column city",
                           @whereand = ' and o.name like ''[A-Z][0-9][0-9][0-9]'''
      

  4.   

    or:exec sp_MSforeachtable @command1="if exists(select 1 from syscolumns where id = object_id('?') and name = 'name') alter table ? drop column name",
    @whereand = ' and name like ''[A-Z][0-9][0-9][0-9]'''
    exec sp_MSforeachtable @command1="if exists(select 1 from syscolumns where id = object_id('?') and name = 'city') alter table ? drop column city",
    @whereand = ' and name like ''[A-Z][0-9][0-9][0-9]'''