SQL 2005:如何跨多个表添加相同的列和FK

时间:2009-11-21 00:08:01

标签: sql foreign-keys

我需要将一个列“CurrentLifeCycleId”[int]添加到73个表中,并将这个新列中的外键添加到另一个表“LifeCycle”Id列...有一个简单的方法我可以在一些陈述,而不是一个接一个地遍历每个表。

该列不需要开始为NULL,因为我会在开始之前删除这些表中的所有记录。

这是周末,我今天不想花这么多时间来做这件事:)

提前致谢。

1 个答案:

答案 0 :(得分:1)

使用SQL构建脚本:

SELECT N'ALTER TABLE ' +quotename(name)+N' ADD COLUMN CurrentLifeCycleId (int) null;
alter table '+quotename(name)+N' ADD CONSTRAINT fk_LifeCycleId 
   (CurrentLifeCycleId ) references other_table (LifeCycleId);
'
FROM sys.tables where name in ('table1', 'table2', ..., 'table73');

按Ctrl-T将结果推送为文本,在SSMS中执行,选择结果并将其粘贴到新的查询窗口中。有很多方法(比如PowerShell),但这很简单直接。如果表格不同于架构,请确保将其添加到脚本输出中。

在运行脚本之前,请确保脚本正确无误:)