用于alter多个表的transact sql函数

时间:2014-04-10 10:26:27

标签: sql tsql

我必须使用29个表创建一个Datamodel。很多表都有相同的列,如“版本年”。现在我想知道是否有一种方法可以创建一个将这些列添加到表中的函数。

对于MS SQL Server,是否可以使用transact-sql?或者让某人有个好主意?

2 个答案:

答案 0 :(得分:0)

您无法在单个SQL语句中向多个表添加列,但您可以轻松创建一个多语句SQL,将列添加到所需的表中(copy-paste ftw!):

ALTER  TABLE Table1 ADD COLUMN [Version year] int
ALTER  TABLE Table2 ADD COLUMN [Version year] int
ALTER  TABLE Table3 ADD COLUMN [Version year] int
...

......等等

答案 1 :(得分:0)

如果要向所有表添加列,则可以使用未记录的sp_MSforeachtable过程,或某种动态sql生成和EXEC或sp_executesql。

您可以从sys.columns和sys.tables视图中选择列信息。

根据您的要求,这些解决方案可能比复制粘贴解决方案困难得多。