循环遍历存储过程的结果集并更新表

时间:2013-08-27 11:27:48

标签: sql stored-procedures

我有两个数据库服务器。我正在使用保存在其他数据库中的过程从一个数据库服务器获取更新的项目详细信息。然后我想用过程的结果集更新其他数据库的Item表。 如果在第一个数据库中添加了新项目,我也想插入这些记录

请建议我完成此任务的最佳方式。

2 个答案:

答案 0 :(得分:1)

将结果集放入临时表中,并从该临时表更新其他db表。这允许您运行单个更新查询而不是使用循环。

详细信息取决于您使用的rdbms,您未指定的内容。您还必须确保在两个dbs上都设置了适当的权限。

答案 1 :(得分:0)

要扩展@Dan Bracuk的答案,请将数据写入临时表,然后使用临时表中的值更新镜像数据库中的记录,全部由主键更新。 (因为它听起来像是一个精确的镜子,我假设你正在保留表中的所有键。)

然后,完成后,您可以从临时表中选择实际表中不存在的所有记录,然后插入这些记录。

它最终是2个语句(更新,然后插入),这比做RBAR要好。