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