龙空技术网

SQL Server查询锁表语句

光州大少爷 122

前言:

此刻看官们对“sqlserver常用查询语句”可能比较关怀,各位老铁们都需要分析一些“sqlserver常用查询语句”的相关知识。那么小编在网摘上汇集了一些有关“sqlserver常用查询语句””的相关文章,希望各位老铁们能喜欢,各位老铁们一起来学习一下吧!

-- 锁表(其它事务不能读、更新、删除)

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 = 66 -- 锁表进程

declare @sql varchar(1000)set @sql = 'kill ' + cast(@spidas varchar)exec(@sql)

标签: #sqlserver常用查询语句 #sql解锁表语句