【发布时间】:2008-10-18 02:27:10
【问题描述】:
有两个数据库,数据库 A 有一个表 A,其中包含 id、group 和 flag 列。数据库 B 有一个表 B,其中包含 ID 和标志列。表 B 本质上是表 A where the group == 'B' 的子集。
它们是以我目前无法理解的奇怪方式更新/创建的,并且超出了这个问题的范围(现在不是修复这个客户的基本设置和实践的时候)。
问题是表A中的flag更新时,并没有反映在表B中,而是应该的。这不是一个时间紧迫的问题,所以建议我创建一个工作来处理这个问题。可能是因为现在是周末,也可能是因为我只写过最基本的存储过程(我是程序员,不是 DBA),但我不知道该怎么做。
简单来说,存储过程类似于
Select * in table A where group == B
然后,循环遍历resultset,并为每个 id 更新标志。
但我什至不确定如何像这样循环输入stored procedure。建议?示例代码将是首选。
复杂性:好吧,这也变得有点困难。对于每个组,表 B 都在一个单独的数据库中,我们需要为所有组更新这个标志。因此,我们必须为每个组设置一个单独的触发器来处理每个数据库名称。
是的,已经处理了对表 B 的插入 - 这只是为了更新标志状态。
【问题讨论】:
-
stackoverflow.com/questions/149132/… 似乎有一个类似的问题,但它离我想要完成的目标还有一步之遥。
-
我刚刚重新阅读了链接的问题;您如何描述您的情况缺少的下一步?您是否在问如何使用游标(链接问题中不允许使用游标)?这个问题的规模是多少,即表A中有多少行?
-
目前为 200 万。我希望这也是每年添加的行数。
-
至于下一步,我可能只是想多了。你的回答可能会奏效。明天服务器管理员醒来时我会知道的。
-
由于我不知道的原因,这不再被追求 - 所以我不能确定什么是最好的答案,因为它从未实施过。对不起。
标签: sql sql-server