【问题标题】:Add one common column in whole database在整个数据库中添加一个公共列
【发布时间】:2018-12-07 13:02:29
【问题描述】:

我需要在整个数据库表中添加一个公共列。任何快捷方式或查询或脚本都可以在整个数据库中添加一列。因为该数据库中有近 100 个表。请建议我在所有表中添加列的任何想法

【问题讨论】:

标签: sql phpmyadmin


【解决方案1】:

您可以生成所有查询,然后执行它们:

SELECT concat('ALTER TABLE ',TABLE_NAME,' add column mycolumnname mytype;')
 FROM information_schema.TABLES
WHERE TABLE_SCHEMA = 'yourschema';

【讨论】:

  • 您的查询已成功执行,但未影响任何表
  • 这是一个查询,它会生成您必须执行的查询。因此,只需复制执行结果,将其粘贴到您的 SQL 客户端,然后运行
  • 很好的答案兄弟,非常感谢
【解决方案2】:

您可以通过使用 ? 来使用准备好的语句运算符而不是表名。

代码如下:

改变表? 添加 column_name 列定义;

【讨论】:

    【解决方案3】:

    这里有一个非常相似的问题:

    Add a column if it doesn't exist to all tables?

    是的,您还可以按照@Kobi 的建议从查询中生成脚本。

    SELECT 
    'IF NOT EXISTS(SELECT * FROM sys.columns c WHERE c.[name] = ''COLUMN_NAME'' AND c.[object_id] = OBJECT_ID(N''[' + SCHEMA_NAME(t.schema_id) + '].[' + t.[name] + ']'', N''U''))
        ALTER TABLE [' + SCHEMA_NAME(t.schema_id) + '].[' + t.[name] + ']
        ADD COLUMN_NAME INT NULL
    '
    FROM sys.tables t
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-05-17
      • 2013-09-18
      • 2017-11-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多