在 SQL Server 中复制数据的存储过程

Posted

技术标签:

【中文标题】在 SQL Server 中复制数据的存储过程【英文标题】:Stored procedure to copy data in SQL Server 【发布时间】:2013-02-22 12:43:14 【问题描述】:

我想使用存储过程将数据从一个表移动到另一个具有相同数据库的表。

每次执行存储过程时,只会将更新的列从 SQL Server 的一个表复制到另一个表。

【问题讨论】:

What have you tried so far? - 向我们展示您的努力!你被困在哪里了? 只有更新的 columns 被复制还是你的意思是更新的 rows 何时/在什么情况下调用存储过程? 我想我明白你想做什么。我会研究 SQL Server 更改跟踪。然后,您可以编写一个存储过程来查询更改数据并将“更新”的行复制到不同的表中。您也可以查看老式的时间戳列,但是,更改跟踪更好。如果您使用触发器而不是存储过程,则不需要其中任何一个。 【参考方案1】:

您可以使用审计列来实现这一点。

在源表上,您需要添加 ModifiedOn 日期时间列。每次更新源表上的列时,您还需要将 ModifiedOn 列更新为 getdate() 以指定该行已被修改并且列值已被更新。

当您将数据从源表复制到目标表时,如果您跟踪加载到目标表的最后一个 ModifiedOn 值,则可以使用该值在源表中查找具有较大 ModifiedOn 值的行,并且然后只加载发生变化的行。

【讨论】:

以上是关于在 SQL Server 中复制数据的存储过程的主要内容,如果未能解决你的问题,请参考以下文章

SQL Server - 将存储过程从一个数据库复制到另一个数据库

sql server复制表数据到另外一个表 的存储过程

sql server复制表数据到另外一个表 的存储过程

sql server复制表数据到另外一个表的存储过程

SQL Server同步复制问题排查方法

将存储过程从 sql server 拉到数据库项目