你的位置:首页 > 数据库

[数据库]SQL Server 锁表、查询被锁表、解锁相关语句

    SQL Server 锁表、查询被锁表、解锁相关语句,供参考。

--锁表(其它事务不能读、更新、删除)BEGIN TRANSELECT * FROM <表名> WITH(TABLOCKX);WAITFOR delay '00:00:20'COMMIT TRAN--锁表(其它事务只能读,不能更新、删除)BEGIN TRANSELECT * FROM <表名> WITH(HOLDLOCK);WAITFOR delay '00:00:20'COMMIT TRAN--锁部分行BEGIN TRANSELECT * FROM <表名> WITH(XLOCK) WHERE ID IN ('81A2EDF9-D1FD-4037-A17B-1369FD3B169B');WAITFOR delay '00:01:20'COMMIT TRAN--查看被锁表select  request_session_id  锁表进程,OBJECT_NAME(resource_associated_entity_id) 被锁表名 from  sys.dm_tran_locks where resource_type='OBJECT';--解锁declare @spid intSet @spid = 55 --锁表进程declare @sql varchar(1000)set @sql='kill '+cast(@spid as varchar)exec(@sql)