在整个数据库中添加一个公共列

时间:2018-06-28 12:31:57

标签: sql phpmyadmin

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

3 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

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

代码如下:

ALTER TABLE?   添加column_name列定义;

答案 2 :(得分:0)

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

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