Shows database, table names which are locked, the user who locks them, the command which is executed
Shows database, table names which are locked, the user who locks them, the command which is executed
CREATE PROC HPSP_UT_ShowLocks
AS
SET ANSI_NULLS OFF
SET NOCOUNT ON
create table #Locks(
spid int
, dbid int
, ObjIdint
, IndIdint
, Typevarchar(4)
, Resourcevarchar(16)
, Modevarchar(8)
, Status varchar(5)
)
INSERT #Locks
EXEC sp_lock
SELECT DISTINCT p.spid, p.status, ObjId, o.name TblName, --p.ecid,
RTRIM(nt_username) username,
RTRIM(loginame) loginame,
hostname ,
CONVERT(char(5),blocked) blk,
CASE
when p.dbid = 0 then null
when p.dbid <> 0 then db_name(p.dbid)
end dbname
,cmd
FROM master.dbo.sysprocesses p
JOIN (SELECT DISTINCT spid, dbid, ObjId, Mode FROM #Locks
WHERE Mode in('X', 'IX', 'SIX')
) l
on p.spid = l.spid
and p.dbid = l.dbid
JOIN dbo.sysobjects o
on o.id = ObjId
drop table #Locks