select 'alter table  ' + name +'  add colname varchar(20)' from sysobjects where xtype ='U' 
其中colname是你要加的列名,将上面的语句在你的数据库里面执行一下,此时生成一批SQL语句,将所有的语句拷贝出来再在你的数据库里面执行就ok
问题解决,接分了.

解决方案 »

  1.   


    declare @SQL VARCHAR (8000)
    SET @sql=''
    select @sql=@sql +' '+ 'alter table  ' +name+'  add colname varchar(20)' from sysobjects where xtype ='U' 
    exec(@sql)
      

  2.   

    sp_msforeachtable 'alter table ? add 列名 int'
      

  3.   

    列名是你要添加的字段名,int是要添加的字段的类型,其他的不用修改.
      

  4.   

    强,sp_ms前缀的系统存储过程是有什么特别之处??
      

  5.   

    xtype 有哪些值,u,v,s,d等分别代表什么意思?
      

  6.   

    tozjcxc(邹建) :
    刚才试了一下,你的方法很有效,而且也更方便。但是这个sp_msforeachtable在帮助中找不到,不知道你是怎么知道的,他有那些用法?
    例外不知道可不可以使用通配符。
    例如我要在所有以sale_开头的表中删除名为health的字段,该怎么办呢?
      

  7.   

    tozjcxc(邹建) :
    我已经就该问题开了一个新帖(30分),请你看看:
    to(邹建):关于"怎样遍历一个数据库中的所有表"的再讨论
      

  8.   

    //xtype 有哪些值,u,v,s,d等分别代表什么意思?
    物件類型。可以是這些物件類型之一: 
    C = CHECK 條件約束
    D = DEFAULT 條件約束
    F = FOREIGN KEY 條件約束
    L = 記錄檔
    FN = 存量函數IF = 內嵌資料表函數P = 預存程序
    PK = PRIMARY KEY 條件約束 (類型為 K)
    RF = 複寫篩選條件預存程序
    S = 系統資料表
    TF = 資料表函數TR = 觸發程序
    U = 使用者資料表
    UQ = UNIQUE 條件約束 (類型為 K)
    V = 檢視表
    X = 延伸預存程式