This is a 2005 sort of sp_who3, which'll return connection info as well as the running command. Also included is the SQL Server 2000 equivalent and also a means of seeing zero cost plans. /********* live requests (running ones) *************/ SELECT st.text as [Command text], login_time, [host_name], program_name, sys.dm_exec_requests.session_id, client_net_address, sys.dm_exec_requests.status, command, db_name(database_id) as DatabaseName FROM sys.dm_exec_requests inner join sys.dm_exec_connections on sys.dm_exec_requests.session_id = sys.dm_exec_connections.session_id inner join sys.dm_exec_sessions on sys.dm_exec_sessions.session_id = sys.dm_exec_requests.session_id cross apply sys.dm_exec_sql_text(sql_handle) AS st WHERE sys.dm_exec_requests.session_id >= 51 GO /********* use against a spid to check TSQL - limited to 255 chars *************/ /********* use sp_who3 to run this on all processes *************/ dbcc inputbuffer(myspid) /********* returns upto 800 characters *************/ /********* use DBCC TRACEON (2861) to cache and see zero cost plans also *************/ DECLARE @handle binary(20) SELECT @handle = sql_handle FROM master..sysprocesses WHERE spid = myspid SELECT * FROM ::fn_get_sql(@handle)