huatao

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

--锁表(其它事务不能读、更新、删除)
BEGIN TRAN
SELECT * FROM <表名> WITH(TABLOCKX);
WAITFOR delay \'00:00:20\'
COMMIT TRAN


--锁表(其它事务只能读,不能更新、删除)
BEGIN TRAN
SELECT * FROM <表名> WITH(HOLDLOCK);
WAITFOR delay \'00:00:20\'
COMMIT TRAN

--锁部分行
BEGIN TRAN
SELECT * 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  int
Set @spid  = 55 --锁表进程
declare @sql varchar(1000)
set @sql=\'kill \'+cast(@spid  as varchar)
exec(@sql)

 

分类:

技术点:

相关文章:

  • 2022-12-23
  • 2022-02-28
  • 2021-08-24
  • 2022-12-23
  • 2022-12-23
  • 2021-12-27
  • 2022-02-12
  • 2022-12-23
猜你喜欢
  • 2021-12-06
  • 2021-12-16
  • 2022-12-23
  • 2022-02-19
  • 2022-12-23
  • 2021-11-29
相关资源
相似解决方案