Management of data systems must cope with changes, initiated by users or applications. Query answering in a frequently modified data system must be consistent with the updates. A natural expectation is that a fact that was successfully added, is retrievable as long as it was not intentionally removed. Active Databases do not meet this expectation, since contradicting rules may undo events that triggered them. In this paper, we associate database transactions with effects, and present a method that takes care of preserving the effects of updates. We introduce a compile-time effect preservation transformation that revises a transaction so to prevent contradictory updates, i.e., yields an effect preserving transaction. Our method yields an expressive and efficient transaction, since it is based on interleaving run-time sensitive analysis of effects within the compile-time transformation of a transaction. The interleaving and the compile-time reduction of effects account for the efficiency; the run-time sensitivity of effects accounts for the expressiveness. In the context of Active Databases this method can be used to statically revise a rule application plan, so to prevent contradictory updates. We claim that an effect preserving method should be integrated into every update and query processing system.