代码之家  ›  专栏  ›  技术社区  ›  seraphym

向t-sql中的所有用户表添加列

  •  13
  • seraphym  · 技术社区  · 16 年前

    我需要在数据库中的所有40个用户表中添加一个delete flag列。我可以编写一个脚本来循环sys.tables,但我想我应该检查一下,看看是否有人有更好的解决方案,或者为这个场景预先创建了sql。

    2 回复  |  直到 16 年前
        1
  •  33
  •   Remus Rusanu    16 年前

    exec sp_msforeachtable 'alter table ? add flag bit not null default 0';
    
        2
  •  11
  •   gbn    16 年前

    不,这是手动循环。

    SELECT 
        'ALTER TABLE ' + T.name + ' ADD foo int NULL'
    FROM
        sys.tables AS T
    WHERE
        T.is_ms_shipped = 0
    

    EXEC sys.sp_MSforeachtable 'ALTER TABLE ? ADD foo int NULL'