查看MSSQL锁表与解锁

mac2024-05-09  32

查看被锁表信息

select request_session_id PID ,OBJECT_NAME(resource_associated_entity_id) TABLENAME from sys.dm_tran_locks where resource_type='OBJECT';

解锁被锁表

declare @spid int Set @spid = 109 --锁表进程 declare @sql varchar(1000) set @sql='kill '+cast(@spid as varchar) exec(@sql)

NOLOCK(不加锁)

进行查询时不加任何锁,在此情况下有可能读取到脏数据.仅用于查询。

锁表

TABLOCKX(表锁)

其它事务只能读,不能更新、删除。

BEGIN TRAN SELECT * FROM <tablename> WITH(TABLOCKX); WAITFOR delay '00:00:20' COMMIT TRAN

PAGLOCK(页锁)

HOLDLOCK(保持锁)

不允许读、更新、删除操作,直至事物结束。

EGIN TRAN SELECT * FROM <tablename> WITH(HOLDLOCK); WAITFOR delay '00:00:20' COMMIT TRAN

UPDLOCK(修改锁)

XLOCK

锁定指定数据

BEGIN TRAN SELECT * FROM <tablename> WITH(XLOCK) WHERE ID IN ('81A2EDF9-D1FD-4037-A17B-1369FD3B169B'); WAITFOR delay '00:01:20' COMMIT TRAN
最新回复(0)