如何在数据库中提交但是选择修改后的数据

时间:2015-09-18 12:03:24

标签: sql-server transactions submit read-uncommitted

我有一个包含多个表的数据库

,用户可以更改表格中的数据。

我的问题是,在用户点击“保存”按钮之前,我不会在数据库中发生任何变化,即使他这样做 - 它只提交他决定保存的表

但与此同时,用户必须能够看到他所做的所有更改。并且每个“选择”必须给他修改的数据,而不是基础数据。

我怎么能一方面不提交数据库中的数据,另一方面显示修改后的数据给用户?

我想做一个交易并且不提交,(并且使用read未提交)但是为此我必须不关闭连接(如果我关闭而不提交 - 所有更改都被取消)而且我不不要打开几个连接。

我还想构建一个包含所有更改的列表,每当用户进行选择时 - 首先从列表中搜索。但它非常复杂,我更喜欢简单的解决方案

谢谢

2 个答案:

答案 0 :(得分:0)

您可以使用临时表来存储临时数据,然后在需要时移动它们。

答案 1 :(得分:0)

由于您坚持不能使用交易,因此 非常 难以处理。

我可以建议的最好是在每个表中添加列来表示状态 - 但即便如此,对于如何确保用户 A看到的是预更改和用户 B帖子但尚未提交。

也许您可以查看使用两个表并根据需要选择相关数据的视图。

无论哪种方式,这都是一种讨厌的方式而不是非常高效。

你坚持不能使用交易的那一刻就是你拿走任何简单答案的机会。

临时表在这里没有帮助(如上所述),因为它与您声明关闭的连接相关联。唯一的替代临时表解决方案是全局临时表,但这也导致问题(谁创建它,如果你是最后一个使用它的连接,检查它是否存在等等。)