使用UPLDOCK无需事务

时间:2018-02-09 00:26:15

标签: sql sql-server tsql transactions

文档说明Specifies that update locks are to be taken and held until the transaction completes.因此,如果我不是交易,那么将它添加到我的查询中是没有意义的吗?

1 个答案:

答案 0 :(得分:1)

SQL Server中的所有内容都在Transaction中完成。无论是使用关键字Begin Transaction明确打开交易还是不明确,如果您没有明确打开事务(AKA Explicit Transaction),sql server会包装您的t-sql事务中的语句自动也称为Implicit Transactions

现在在事务(显式或隐式)中,sql server将获取资源(表,索引等)上的一些锁,具体取决于正在采取的操作类型,sql server获取不同类型的锁(共享锁,独占)锁等)

如果在语句中使用UPDLOCK(更新锁定),则它是一个独占锁,其他用户将无法在事务持续期间(显式或隐式)访问对象。

因此,如果您在语句中使用提示(UPDLOCK),您是否使用事务(显式事务)(隐式事务),您将查询将获得独占锁定,并在事务期间将对象专门锁定。