Herkese merhaba. Bu yazıda SQL Server’da kilitlenmiş tabloları listelemek ile ilgili bilgi vermeye çalışacağım.

SQL Server’da bazı durumlarda kilitlenmiş tabloları listelemek isteyebilirsiniz.

Aşağıdaki kodu kullanarak sizler de bu işlemi rahatlıkla yapabilirsiniz.

SELECT
	DTL.resource_type
   ,CASE
		WHEN DTL.resource_type IN ('DATABASE', 'FILE', 'METADATA') THEN DTL.resource_type
		WHEN DTL.resource_type = 'OBJECT' THEN OBJECT_NAME(DTL.resource_associated_entity_id, SP.[dbid])
		WHEN DTL.resource_type IN ('KEY', 'PAGE', 'RID') THEN (SELECT
					OBJECT_NAME([object_id])
				FROM sys.partitions
				WHERE sys.partitions.hobt_id =
				DTL.resource_associated_entity_id)
		ELSE 'Unidentified'
	END AS requested_object_name
   ,DTL.request_mode
   ,DTL.request_status
   ,DEST.TEXT
   ,SP.spid
   ,SP.blocked
   ,SP.status
   ,SP.loginame
FROM sys.dm_tran_locks DTL
INNER JOIN sys.sysprocesses SP
	ON DTL.request_session_id = SP.spid
--INNER JOIN sys.[dm_exec_requests] AS SDER ON SP.[spid] = [SDER].[session_id] 
CROSS APPLY sys.dm_exec_sql_text(SP.sql_handle) AS DEST
WHERE SP.dbid = db_id()
AND DTL.[resource_type] <> 'DATABASE'
ORDER BY DTL.[request_session_id];

Herkese çalışma hayatında ve yaşamında başarılar kolaylıklar.

503 Kez Okundu

Kategoriler: