我第一次阅读有关MSSQL Locking的内容,而且很多地方,锁定机制概念依赖于Transactions的存在。我想知道在没有涉及任何交易的情况下是否可以锁定(一般情况下)?
答案 0 :(得分:7)
如果不存在显式事务,则每个SQL语句都在自动(自动提交)事务中执行。正常锁定行为将适用于该情况,并且在语句完成时自动事务完成时释放锁。
答案 1 :(得分:7)
是。在几个隔离级别(包括默认的READ COMMITTED)下,查询采用共享(S)锁定,这将阻止更改数据所需的锁定。
每个UPDATE,INSERT,DELETE和MERGE都在单个语句事务中运行,即使您没有通过BEGIN TRANSACTION
显式启动事务。