This will give you the name of the login or schedule who invoked the job. I hope this will help
DECLARE @Schedule_Name_ID nVARCHAR(1000)
DECLARE @Job_ID nVARCHAR(100)
DECLARE @StateINT
DECLARE @Job_Name nVARCHAR(1000)
SET@Job_Name = 'Your Job Name Goes Here'
SELECT@Job_ID = job_id
FROMmsdb.dbo.SysJobs
WHEREname = @Job_Name
IF(@Job_ID IS NOT NULL)
BEGIN
CREATE TABLE #job_current_state
(
Job_ID UNIQUEIDENTIFIER,
Last_Run_Date INT,
Last_Run_Time INT,
Next_Run_Date INT,
Next_Run_Time INT,
Next_Run_Schedule_ID INT,
Requested_To_Run INT,
Request_Source INT,
Request_Source_ID VARCHAR(100),
Running INT,
Current_Step INT,
Current_Retry_Attempt INT,
State INT
)
INSERT INTO #job_current_state
EXEC master.dbo.xp_sqlagent_enum_jobs 1, garbage
SELECT @Schedule_Name_ID = Request_Source_ID,@State = State
FROM #job_current_state
wherejob_id = @Job_ID
SELECTISNULL(@Schedule_Name_ID,'NA') Schedule_Name_ID
,CASE @State WHEN 1 THEN 'Running' ELSE 'Stopped' END State
DROP TABLE #job_current_state
END
ELSE
BEGIN
SELECT'Job does not exist' output
END
Musab
http://www.sqlhelpline.com