假设我有一个表与下面的模式:表恢复问题
TABLEID
字段1
场2
.....
我有我的数据库的两个副本(备份和制作)。在生产实例,查询却意外地运行其做了以下内容:
Update table set field2 = null where field1 = 'x';
我试图撤消基于存储在备份实例(哪里不好update语句不运行)的数据这个查询。
我需要在备份数据库上运行哪些SQL语句来检索fieldId和table2的值?我如何将其转换为适当的更新报表来修复生产?可能会有很多行受到查询的影响。
我想,我可以用下面的查询选择备份擦除值:
Select tableId, field2 where field1 = 'x';
不过,我在一个关于如何将其转换成一个简单的更新语句损失。任何洞察力(或更好的想法)将不胜感激。
2 followups:在TABLEID是唯一的主整数键和两个数据库位于不同的计算机上,那么您是否建议将备份中的表转储到生产中的表上? – Visitor 2010-10-08 00:05:24
是,在生产数据库中创建备份表的临时副本。实际上,一个更好的选择是在备份中制作破损的生产表的临时副本,并在那里工作。一旦良好,然后将该数据复制回生产。 – thursdaysgeek 2010-10-11 20:21:17