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)
新聞熱點
疑難解答