【问题标题】:SQL - How to alter table while doing INSERT INTO?SQL - 如何在执行 INSERT INTO 时更改表?
【发布时间】:2014-10-03 09:45:50
【问题描述】:

我有 2 个相似的表 Table1 和 Table2。我想将一些记录从 Table1 带到 Table2,为此我使用了 INSERT INTO 语句。 Table1 中有一个“EntityColumn”列,具有唯一值,如 C1、C2、C3 等。

对于从 Table1 复制到 Table2 的每条记录,我希望将一列添加到第三个表 - Table3 - 并且列的名称应该是 EntityColumn 字段的值。所附图片应提供描述。

请告诉我如何做到这一点。

【问题讨论】:

  • 您真的需要将它即时添加到物理表中吗?您可以在其顶部创建一个交叉表视图。您真正追求的是交叉表。

标签: sql sql-server alter-table insert-into


【解决方案1】:

你不能轻易做到这一点。

逻辑上的方法是编写一个触发器,对于插入的每个值,您将更改第三个表并添加一列。

但是,根据documentation,DML 触发器无法运行 alter table 语句来添加列。

【讨论】:

  • 非常感谢您的回复。不是在将行复制到 Table2 时向 Table3 添加列,而是在将所有行复制到 Table2 后添加列?
  • @GuhanMurugesan 。 . .听起来您需要一个存储过程来运行动态 SQL 来执行您想要的操作。所以,是的,这是可能的。
猜你喜欢
  • 2019-04-30
  • 2011-01-22
  • 2013-03-01
  • 1970-01-01
  • 2014-07-31
  • 1970-01-01
  • 2017-12-24
  • 2012-07-07
  • 2021-11-19
相关资源
最近更新 更多