我怎么能看到共享锁?是因为外键吗?
是。当出于验证外键约束的目的而访问表时,SQL Server恢复为已读提交隔离级别的锁定实现。这是正确性所必需的,不能禁用。
该行为仅适用于数据修改语句。仅当检查与外键有关的数据时才使用共享锁。同一执行计划中的其他数据访问可以继续使用行版本控制。
如果SQL Server不这样做,则RCSI
由于完整性检查使用的是过期(版本化)数据,因此下的数据修改语句可能最终违反外键约束。
不幸的是,当前尚无支持的方法来查看执行计划中锁定行为的这种变化。当跟踪标志8607处于活动状态时,可能会看到内部锁定提示。