SQL Server:从一个表中复制新添加的行并自动插入到另一个表中

Posted

技术标签:

【中文标题】SQL Server:从一个表中复制新添加的行并自动插入到另一个表中【英文标题】:SQL Server: copy newly added rows from one table and insert into another automatically 【发布时间】:2020-07-24 00:57:10 【问题描述】:

我需要使用表中的几列执行一些计算。这个每隔几个小时更新一次的数据库表每隔一天就会在几个列上生成重复项。无法判断哪个先插入会影响我的计算。

有没有办法在每隔几个小时添加一次数据并即时执行计算时自动将这些行复制到新表中?这样,首先出现的内容都将被捕获到仪表板和其他业务用例的新表中。

我想创建一个存储过程并使用作业调度程序来执行此操作。但我没有管理员权限,也无法安排作业。还有另一种有效的方法吗?非常感谢!

编辑:我的管理员访问请求正在被批准。

【问题讨论】:

听起来您想使用***.com/a/1651909/212514 中建议的触发器。或者,您可以考虑使用merge 声明***.com/a/14806962/212514。 这需要一个触发器。如果您没有安排任务所需的权限,则不太可能添加一个。如果您不这样做,请联系您的 DBA 为您创建它。 感谢 user212514 和 @KenWhite 的回复。我会检查它是否有效。另外,你能给我提供一个用例的参考吗?我正在努力寻找,但找不到。非常感谢! 如果您的用例是指示例,您可以使用您最喜欢的搜索引擎来查找这些。我们已经为你指明了水的方向;由你决定开始喝酒。 :-) @KenWhite 够公平!我想你可能有一些方便的东西:) 【参考方案1】:

在答案中陈述的另一种方式,你可以做的是:

    制作临时表。 制作产品表。 在完成任何加载后,使用存储过程将 temp 表中的所有内容复制到 prod 表中。 加载完成后使用相同的存储过程清理临时表。

不知道这是否可行,但这通常是我们每天处理大量负载的方式。

【讨论】:

谢谢!让我看看结果如何。如果我采取这条路线并且如果可行,我会回来投票。

以上是关于SQL Server:从一个表中复制新添加的行并自动插入到另一个表中的主要内容,如果未能解决你的问题,请参考以下文章

如何从SQL表中选择特定行并在SQL Server中连接多个表?

Oracle SQL - 重复行并更新表中的列

SQL:从表 1 中选择行并存在(表 2 中的行)

从一个表中选择行并插入到另一个表中

如何从MS SQL Server 2012中的不同表中减去连续的行?

SQL:选择具有最大值的行并按单列分组