协调多个用户所做的更改 (Visual Database Tools)
在多用户环境中,多个用户可以同时对同一个对象进行更改。当您在表或数据库关系图设计器中处理对象的结构时,可能会出现这种情况;对于查询和视图设计器的“结果”窗格内所返回结果中的值,也会出现这种情况。这可能导致您需要解决的冲突。
表设计器或数据库关系图设计器中的冲突
例如,当您在表设计器中处理某个表时,另一个用户可能会删除或重命名同一个表或相关的表。当您尝试保存表时,“检测到数据库更改”对话框 (Visual Database Tools) 会通知您,在您打开该表之后数据库已经更新。
该对话框还会显示一个列表,列出在您保存表时将受到影响的数据库对象。此时,您可以执行以下操作之一:
- 选择“是”来保存表并使用列表中的所有更改更新数据库。
此操作将影响共用相同数据库对象的表。例如,假设您编辑titleauthors
表中的au
_id
列,而另一个用户正在处理authors
表,该表通过au
_id
列与titleauthors
表相关。保存您的表将影响另一个用户的表。与此类似,假设另一个用户为sales
表中的qty
列定义了一个 CHECK 约束。如果您删除qty
列并保存sales
表,则另一个用户的 CHECK 约束将受到影响。 - 选择“否”来取消保存操作。
您随后即可关闭该表而不进行保存。当您重新打开该表时,它将与数据库中的相应内容匹配。 - 选择“保存文本文件”来保存更改列表。
您可以将**“检测到数据库更改”**对话框中显示的一系列数据库更改保存为文本文件,以便调查其他用户的更改原因。例如,如果另一个用户编辑了您标记为删除的表,则您可能希望研究在更新数据库之前是否应删除该表。
查询和视图设计器中的冲突
如果您运行查询或返回某视图的结果,则会在“结果”窗格中显示数据。多个用户可以同时对同一组数据进行操作,这便可能导致冲突。
例如,假设您和同事分别运行查询以显示 titleauthors
表中的所有数据。您的同事将返回的第一个记录中的名字由 Barb 改为 Barbara。此时,数据库的相应字段将包含 Barbara,而您的结果集中仍会显示 Barb。现在您键入 Barbara,然后在行外单击。您将收到一条消息,询问要如何解决冲突。
- 单击“是”可用您的更改更新数据库。
这将重写您的同事的更改。 - 单击**“否”**可将您的结果集更新为数据库中的当前相应内容。
这将用您的同事的更改重写您的更改。 - 单击“取消”可继续编辑而不解决冲突。
在这种情况下,您将无法将更改提交到数据库。
请参阅
其他资源
“检测到数据库更改”对话框 (Visual Database Tools)