1

如果一个用户访问表中 10 条记录中的 1 条记录。如果同时,第二个用户尝试访问第一个用户的同一记录,则不应显示该记录,而是应显示第二个记录,因为第一个用户将持有该记录一段时间以进行处理和更新到那时,即使选择查询是从第二个用户应用程序触发的,也不应向任何其他用户显示此记录。是否可以使用行锁?请为我提供如何实现行锁和保持锁并释放使用行级锁的保持锁的示例。除此之外,如果您有任何其他建议,请分享

我正在使用带有 Asp.Net 的 SqlServer2005

巴布

4

1 回答 1

0

我不知道行锁是否会阻止它被选中,但你不能使用审计表吗?例如,当用户 1 访问记录时,该记录的 ID 存储在审计表中,然后当用户 2 尝试使用记录时,应用程序应检查记录的主键是否在审计表中,如果如果不是第二个用户获得访问权,则第二个用户没有获得访问权。一旦用户完成了记录,您可以删除审计表中的记录,或者您可以保留记录但设置一个标志以表示它不再使用,因为这样您可以看到谁更改了哪些记录以及在什么位置如果添加日期时间戳,则为时间。

同样,当使用 select 命令时,只需这样做,以便如果主键存在于审计表中,则不要选择它。

希望这可以帮助

于 2012-04-25T08:26:32.640 回答