and OBJECTPROPERTY(id, N'IsProcedure') = 1)
drop procedure Usp_Log_WhoLock
GO
CREATE Procedure dbo.Usp_Log_WhoLock
As
/*****************************
* Procedure: Usp_Log_WhoLock
* PURPOSE: Logs SQL Connection and Locks
* NOTES:
* CREATED: Vishwa(06/24/2006)
*
* MODIFIED
* DATE AUTHOR DESCRIPTION
*-------------------------------------------------------------------------------
* {date} {developer} {brief modification description}
*
*
************************************/
SET NOCOUNT ON
Declare @ConnectionCount Int, @LockCount Int
Declare @CurrentTime DateTime
SET @CurrentTime= GetDate()
-----FOR SQL Server 2000 based -----------------------
INSERT Into tbl_Who2_Log(spid, Status, Login, HostName, BlkBy, DBName,
Command, CPUTime,DiskIO,LastBatch,ProgramName,SSPID)
EXEC dbo.sp_who2
/***FOR SQL Server 2005 based ------------------------
INSERT Into tbl_Who2_Log(spid, Status, Login, HostName, BlkBy, DBName,
Command, CPUTime,DiskIO,LastBatch,ProgramName,SSPID)
SELECT spid, Status, Loginame, HostName, Blocked, dbid,
cmd, CPU,physical_IO,Last_Batch,Program_Name,hostprocess
FROM master.dbo.sysprocesses
*******************/
INSERT tbl_Lock_Log (spid,dbid,ObjId,IndId,Type, Resource,Mode,Status)
EXEC dbo.sp_lock
SELECT @ConnectionCount = COUNT(SPID)
FROM tbl_Who2_Log (NOLOCK)
WHERE DateDiff(Minute,LogDate,@CurrentTime)=0
SELECT @LockCount = COUNT(SPID)
FROM tbl_Lock_Log (NOLOCK)
WHERE DateDiff(Minute,LogDate,@CurrentTime)=0
PRINT 'At ' + Convert(VarChar(20),@CurrentTime)
+ ' Total Connections Count: ' +
Convert(VarChar,@ConnectionCount) +
' and Total Locks Count: ' + Convert(VarChar,@LockCount)
SET NOCOUNT OFF