如果有一个事务或语句被阻塞,就意味着它在等待资源上的锁被释放。下面说明SET LOCK TIMEOUT选项,它指定了阻塞的进程语句在返回错误之前碰该等待多少时间来释放锁。
语法如下:
SET LOCK TlMEOUT timeout_period
超时时段是以毫秒为单位的数字,超时后会返回锁定错误。
1.第一查询窗口执行:
USE AdventureWorks
go
BEGIN TRAN
UPDATE Production.ProductInventory
SET Quantity=400
WHERE ProductID=1 AND LocationID=1
2.第二个查询窗口执行代码,设置超时时间为1秒
use AdventureWorks
go
SET LOCK_TIMEOUT 1000
UPDATE Production.ProductInventory
SET Quantity=406
WHERE ProductID=1 AND LocationID=1
1秒后得到如下错误消息