use SQL. Run this as a scheduled job every nightdeclare @spid intDeclare @kill varchar (12)create table #t ( spid int, status varchar(64), [login] varchar(128), hostname varchar(128), blkBy varchar(32), dbname varchar(128), command varchar(128), cputime int, diskio int, lastbatch varchar(24), programname varchar(128), spid2 int, requestId int)insert #texec sp_who2Declare c CursorRead_OnlyFor select spid/*, login, convert(smalldatetime, convert(char(4), year(getdate())) + left(lastbatch, 2) + substring(lastbatch, 4, 2) + ' ' + right(lastbatch, 8) ) dt*/ from #t where spid > 50 and rtrim(status) <> 'BACKGROUND' And datediff(hour, convert(smalldatetime, convert(char(4), year(getdate())) + left(lastbatch, 2) + substring(lastbatch, 4, 2) + ' ' + right(lastbatch, 8) ), getdate() ) > 3open cfetch next from c into @spidwhile @@fetch_status = 0begin set @kill = 'KILL ' + convert(varchar(32), @spid) Exec(@kill) fetch next from c into @spidendclose cdeallocate c