SQL Server 鎖表、查詢被鎖表、解鎖相關語句,供參考。sql
--鎖表(其它事務不能讀、更新、刪除) 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)