【发布时间】:2017-05-17 00:07:55
【问题描述】:
我有一个包含大约 150 列的表 (tableA),我想在插入表 A 的任何新数据时将数据从表 A 复制到另一个表 (表 B)。表 B 具有与表 A 相同的表结构还有一些额外的列。
我是触发器的新手,我正在阅读以下链接中的示例:https://www.codeproject.com/Articles/25600/Triggers-SQL-Server
由于我有包含 150 列的 tableA,有没有更简单的方法来指定触发器中的列,而不是声明 150 个变量,选择 150 个变量等于插入的值,然后将其插入到 tableB。这使得触发代码非常长。我想知道是否有更简单的方法来指定 150 列。
谢谢
【问题讨论】:
-
首先,编写触发器的方式完全错误。您不声明 150 个变量(或任何变量),然后选择它们,插入到另一个表中。那只是破碎,缓慢和浪费。您只需直接从“插入”集合中插入到另一个表中。是的,您仍然应该列出每一列(最佳实践),但您不声明任何变量。触发器不会“按行”执行,但按事件...插入、更新和删除都可以影响多行。
标签: sql sql-server triggers