Answers:
当前,过程A具有共享锁。
“资源上存在共享(S)锁时,没有其他事务可以修改数据。” http://msdn.microsoft.com/zh-cn/library/aa213039%28v=sql.80%29.aspx
如果您使用的是sql 2005或更高版本,请尝试使用快照隔离。
“快照隔离级别使用行版本控制来提供事务级别的读取一致性。读取操作不获取页锁或行锁;仅获取SCH-S表锁。读取另一个事务修改的行时,它们将检索该行的版本事务开始时已存在。仅当ALLOW_SNAPSHOT_ISOLATION数据库选项设置为ON时,才可以对数据库使用快照隔离。默认情况下,对于用户数据库,此选项设置为OFF。” http://msdn.microsoft.com/en-us/library/ms189122.aspx
由于仅获取Sch-S锁,因此您的“读取”不应阻止您的“写入”。
“架构稳定性(Sch-S)锁不会阻止任何事务锁,包括排他(X)锁。” http://msdn.microsoft.com/en-us/library/ms189122.aspx
请记住,快照隔离级别大量使用了tempdb进行行版本控制,因此请适当调整其大小并遵循tempdb磁盘策略的最佳实践。