How to stop SQL Server Agent Job if Stored Procedure returns value 0

I have SQL Server 2012 SSIS.
I have 2 SSIS packages.
I have created SQL Server Agent Job for running packages.
I have created steps. If first step have run succesfully next step is run.
I have need to add new logic.
I have validation stored procedure, which validate DB table values and returns 1 or 0.
I would like to create logic where first of all this SP is runned. Return value of SP determines if steps are run or not.
I was thinking to use Execute SQL Task for running SP.
If value 1 is returned, then run rest of Tasks is run.
If value 0 is returned, what should I do so that Job is stopped? I need assistance! 
I want current step to stop never moved to next step.
Is there any SSIS tasks, which can stop the Job?
Or should I make Step for running validation SP?
How to do so that if value 0 is returned stop Job.
Kenny_I

Please refer the below link:
http://technet.microsoft.com/en-us/library/aa260308(v=sql.80).aspx
Please read Remarks carefully!!!
Remarks
If a job is currently executing a step of type CmdExec, the process being run (for example, MyProgram.exe) is forced to end prematurely. Premature ending can result in unpredictable behavior such as files in use by the process being held open. Consequently,
sp_stop_job should be used only in extreme circumstances if the job contains steps of type CmdExec.
Permissions
Execute permissions default to the public role in the
msdb database. A user who can execute this procedure and is a member of the
sysadmin fixed role can stop any job. A user who is not a member of the
sysadmin role can use sp_stop_job to stop only the jobs he/she owns.
When sp_stop_job is invoked by a user who is a member of the
sysadmin fixed server role, sp_stop_job will be executed under the security context in which the SQL Server service is running. When the user is not a member of the
sysadmin group, sp_stop_job will impersonate the SQL Server Agent proxy account, which is specified using
xp_sqlagent_proxy_account. If the proxy account is not available,
sp_stop_job will fail. This is only true for Microsoft® Windows® NT 4.0 and Windows 2000. On Windows 9.x, there is no impersonation and
sp_stop_job is always executed under the security context of the Windows 9.x user who started SQL Server.

Similar Messages

  • How to run a SQL Server Agent job step on certain days/frequency

    I've a SQL Server Agent job. One of the requirement is that a particular step should only run on certain frequency i.e. Certain Date and time. Any suggestions how can that be done?
    GBM

    yes
    1. Make first step as a Transact SQL step. Keep command as below
    IF DAY(GETDATE()) = <Your date value>
    AND DATEPART(hh,GETDATE()) = <your time hour)
    AND DATEPART(minute,GETDATE()) = <your time minute)
    SELECT 1
    ELSE
    RAISERROR 'Job cant be run at this time'
    Then for job step properties set the following properties in advanced tab
    This would make sure it will quit the job without executing other core steps untill it reaches the required day and time
    You can add more conditions in IF based on requirement like if you want time to be on certain second or month to be particular value etc
    Please Mark This As Answer if it helps to solve the issue Visakh ---------------------------- http://visakhm.blogspot.com/ https://www.facebook.com/VmBlogs

  • What SQL Server Agent jobs are currently running and for how long

    Is there a way to tell what SQL Server Agent jobs are currently running and for how long?  View history isn't working in my case because it's only showing completed jobs.  John Schroeder

     You can use the "Job Activity Monitor" for doing this.  Do the following steps. It will open up the Job Activity Monitor.
    1.    In Object Explorer, connect to an instance of the SQL Server Database Engine, and then expand that instance.
    2.    Expand SQL Server Agent.
    3.    Right-click Job Activity Monitor and click View Job Activity.
    4.    In the Job Activity Monitor, you can view details about each job that is defined for this server.
    In Job Activity Monitor page, we have column called Status. It will indicate whether job is executing or idle. Last Run column will give you the last invocation time of this job.
    Use the following link for further reference.
    http://msdn.microsoft.com/en-us/library/ms187449.aspx
    Thanks,
    Sateesh.
    Mark Post as helpful if it provides any help.Otherwise,leave it as it is.

  • HOw to avoid DeadLocks when you schedule a Sql Server Agent Job and calling SSIS packages

    Hi All,
    I have scheduled 2 packages in in Sql Server Agent jobs .
    First job which is having Package 1 executing at 11 AM and where I am inserting the data in the table.
    Second job which is having Package 2 executing at 12 AM and where I am updating the data in the table based on the first job inserted records.
    When I am executing my first job it taking more time and executing till 12 AM and from 12 AM my job 2 also starting ,so getting deadlocks conflicts because inserting happening from job1 and updating happening from Job 2.
    How to avoid deadlocks and fix the issue.
    Please Suggest .
    Thanks & Regards,
    Anand

    Hi Anand,
    Here is another solution, you can set the Job 2 not to run based on a schedule, and create another SQL Server Agent Job which starts at 12 AM and run with a specified time interval to execute a SQL statement in which you do the following steps:
    1. Get the status information of Job 1 using the statement:
    DECLARE @i int;
    EXEC @i = msdb.dbo.sp_help_job @job_name = ‘Job Name'
    2. If the value of @i is 1 which means the status of job 1 is success and current time is, then start the job 2. So, the statement is as follows:
    IF @I = 1
    EXEC msdb.dbo.sp_start_job @job_name= ‘Job Name’
    Regards,
    Mike Yin
    TechNet Community Support

  • How to pass values to SQL server Agent Job which internally calls SSIS

    Hi,
    I have a requirement where i need to call remotely SSIS package from ASPX. After following MSDN form, I have creaed one SQL server agent job and calling that job from ASPX. I am ablt call SQL server agent job from ASPX. Only issue i am facing is: I need
    to pass 2 variables from ASPX to SQL Agent job so that from Job i can map the same to SSIS Package.
    I am using system SP (sp_start_job) for calling SQL server agent job as mentioned in MSDN forum.
    below is the code , which i am using to call SQL serve agent job.
    Code:
    SqlConnection
    jobConnection;
    SqlCommand jobCommand;
    SqlParameter jobReturnValue;
    SqlParameter jobParameter;
    int jobResult;
                    jobConnection =
    new
    SqlConnection("Server=ServerName;Initial
    Catalog=msdb;Integrated Security=SSPI;user id=username;Password=password");
                    jobCommand =
    new
    SqlCommand("sp_start_job",
    jobConnection);
                    jobCommand.CommandType =
    CommandType.StoredProcedure;
                    jobReturnValue =
    new
    SqlParameter("@RETURN_VALUE",
    SqlDbType.Int);
                    jobReturnValue.Direction =
    ParameterDirection.ReturnValue;
                    jobCommand.Parameters.Add(jobReturnValue);
                    jobParameter =
    new
    SqlParameter("@job_name",
    SqlDbType.VarChar);
                    jobParameter.Direction =
    ParameterDirection.Input;
                    jobCommand.Parameters.Add(jobParameter);
                    jobParameter.Value =
    "ImportCMTData";
                    jobConnection.Open();
                    jobCommand.ExecuteNonQuery();
                    jobResult = (
    Int32)jobCommand.Parameters["@RETURN_VALUE"].Value;
                    jobConnection.Close();
    switch (jobResult)
    case 0:
    Console.WriteLine("SQL
    Server Agent job, RunSISSPackage, started successfully.");
    break;
    default:
    Console.WriteLine("SQL
    Server Agent job, RunSISSPackage, failed to start.");
    break;
    Console.Read();
    Thanks
    Pankaj

    "3-4 concurrent users are calling the SSIS package from ASPX page" this is not a proper design
    If the data is being ingested than it is likely that this concurrency will lead to one of the packages die
    What you shell do is to just queue the data ingress/processing.
    In general, again, packages should not be called from ASP web pages, SSIS is ETL-server side technology there is nothing signalling back to the user whether it was successful. The proper way is to write a REST service or alike. 
    Arthur
    MyBlog
    Twitter

  • How to run Exe file through Sql server agent job

    Hello All
    i have 2 servers 
    1.Application Server
    2.Database server
    Application server has a .exe file so i wanted to run this exe file through SQL server agent job from database server.
    What is the process for run this Exe file 
    Can you plz suggest me step by step process
    Kamal

    While i'm trying to implement this below method
    Step1 : Right Click SQL Server Agent. Select New -> Job. This will open a wizard to schedule a new
    job.
    Step2 : Select Steps from options given on the left side of wizard. This is the main place to set your
    exe\program as a running step. Give some name to this step, Select Operating System (cmdexec) for the Type and give the full path of exe in Text box for Command.
    ex:\\10.11.00.98(your application serverIP)\ch.exe
    Thanks vanchan-Please
    mark this reply as the answer or vote as helpful, as appropriate, to make it useful for other readers
    I got this below error
    Message
    Executed as user:NJROSJ345\SYSTEM. The process could not be created for step1 of job
    (Reason:Access is Denied)The step failed.
    But i have sys admin rights on the both the servers 
    Kamal

  • Error while executing SSIS package which contains Script component through SQL Server Agent Job

    Hello All,
    I have written one SSIS 2012 package which is fetching records from CSV and put it into staging DB and from staging DB , using SSIS script component task, I am inserting data into Dynamics CRM. So far it is working fine when
    I manually execute SSIS package.
    but when I run the SSIS package using SQL server agent job, I encounter below error. After seeing below error at step "Insert TLM Headers Script Component " I understand that it is failing at script component which I have used in SSIS package,
    but I am not sure what is the cause behind that? please advise.
    Error:
    Executed as user: domain\user account. Microsoft (R) SQL Server Execute Package Utility  Version 11.0.5556.0 for 64-bit  Copyright (C) Microsoft Corporation. All rights reserved.    Started:  1:21:41 PM  Error: 2015-02-25
    13:21:45.94     Code: 0xC0047062     Source: Insert TLM Headers Script Component [205]     Description: System.ServiceModel.FaultException: The server was unable to process the request due to an internal
    error.  For more information about the error, either turn on IncludeExceptionDetailInFaults (either from ServiceBehaviorAttribute or from the <serviceDebug> configuration behavior) on the server in order to send the exception information back to
    the client, or turn on tracing as per the Microsoft .NET Framework 3.0 SDK documentation and inspect the server trace logs.    Server stack trace:      at System.ServiceModel.Channels.ServiceChannel.ThrowIfFaultUnderstood(Message
    reply, MessageFault fault, String action, MessageVersion version, FaultConverter faultConverter)     at System.ServiceModel.Channels.ServiceChannel.HandleReply(ProxyOperationRuntime operation, ProxyRpc& rpc)    
    at System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs, TimeSpan timeout)     at System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage
    methodCall, ProxyOperationRuntime operation)     at System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage message)    Exception rethrown at [0]:      at Microsoft.SqlServer.Dts.Pipeline.ScriptComponentHost.HandleUserException(Exception
    e)     at Microsoft.SqlServer.Dts.Pipeline.ScriptComponentHost.ProcessInput(Int32 inputID, PipelineBuffer buffer)     at Microsoft.SqlServer.Dts.Pipeline.ManagedComponentHost.HostProcessInput(IDTSManagedComponentWrapper100
    wrapper, Int32 inputID, IDTSBuffer100 pDTSBuffer, IntPtr bufferWirePacket)  End Error  Error: 2015-02-25 13:21:45.94     Code: 0xC0047022     Source: Insert TLM Headers SSIS.Pipeline    
    Description: SSIS Error Code DTS_E_PROCESSINPUTFAILED.  The ProcessInput method on component "Script Component" (205) failed with error code 0x80131501 while processing input "Input 0" (215). The identified component returned an error
    from the ProcessInput method. The error is specific to the component, but the error is fatal and will cause the Data Flow task to stop running.  There may be error messages posted before this with more information about the failure.  End Error 
    DTExec: The package execution returned DTSER_FAILURE (1).  Started:  1:21:41 PM  Finished: 1:21:45 PM  Elapsed:  4.009 seconds.  The package execution failed.  The step failed.
    Thanks
    Pankaj

    domain\user account has not proper rights
    That being said, often SSIS jobs require a proxy to be runnable and this is how you make one up
    http://www.mssqltips.com/sqlservertip/2163/running-a-ssis-package-from-sql-server-agent-using-a-proxy-account/
    Arthur
    MyBlog
    Twitter

  • Sql server agent job with SSIS

    Hello Experts
    i have a sql server agent job that has four steps in tsql,ssis,tsql and tsql orders. the job run automatically every night and i copy paste the error message right here, any ideas please:
    Date                     
    1/27/2014 7:30:00 AM
    Log                        
    Job History (test [Mon-Fri AM])
    Step ID                
    1
    Server                  
    server1
    Job Name                           
    name [Mon-Fri AM]
    Step Name                        
    step one
    Duration                             
    00:34:33
    Sql Severity                       
    0
    Sql Message ID                
    0
    Operator Emailed                           
    Operator Net sent                          
    Operator Paged                               
    Retries Attempted                         
    0
    Message
    Executed as user x\serveragent. The step was cancelled (stopped) as the result of a stop job request.

    you can try default trace / event viewer to check if there is any entry on same .
    How to read default trace in sql server
    Thanks Saurabh Sinha
    http://saurabhsinhainblogs.blogspot.in/
    Please click the Mark as answer button and vote as helpful
    if this reply solves your problem

  • Database Mail Fails For SQL Server Agent Jobs / Maintenace plans - Why ?

    Database Mail Fails For SQL Server Agent Jobs / Maintenace plans - Why ?
    This has been a very common question I have seen relatedt to Database mail and I thought will post here so if you run into this issue, it could be due to one of the following and also have mentioned below how to get around them. Bottom line is datbase mail works fine with SQL Agent jobs and maintenace plans in SP1 on all platforms.
    1. If you see this on 64 bit platform and on RTM build, this is a bug that is addressed in SP1.
    2. If you see the below error message, it is known issue and this is because of design that requires SQL Agent to restart, if SQL Agent was started before enabling databasemail and setting a new profile. We are evaluating to change this design of not requiring to restart agent for our future release.
    Re: 264] An attempt was made to send an email when no email session has been established
    This problem will go away after restarting SQL Server Agent in this case. Thanks,
    Gops Dwarak, MSFT

    This may be related to the fact that DBMail, by default, shuts itself down after 10 minutes of inactivty.  If the mail service isn't running, you won't be able to queue up any mail messages.
    There may be a built-in mechanism for addressing this problem, but I found that I can detect this situation and start the mail listener before sending db mail.  I use the following in stored procs that need to send email.
    You could increase the inactivity period for db mail shutdown from 600 seconds to some larger value.  It might not make sense to do so, since shutting it down releases its resources back to teh system; if your SQL server only sneds mail infrequently, it might be better to start the mail listener on demand.  Someone with more experience than I might want to add their two cents' worth.  :-)
    /* Check the mail engine. Start the service if is is stopped         */
    /* -- the DB Mail engine shuts down after 10 minutes (of inactivity) */
    /* -- this setting can be changed, but we probably don't need to.    */
    DECLARE @rc INT
    IF NOT EXISTS (SELECT * FROM msdb.sys.service_queues
                   WHERE name = N'ExternalMailQueue' AND is_receive_enabled = 1)
        EXEC @rc = msdb.dbo.sysmail_start_sp
        -- TODO: add handling and logging for any engine start issues

  • SSIS Package Fails when Scheduled as a SQL Server Agent Job

    I have an SSIS package that runs without any problems when executed through BIDS.
    However, when I schedule the SSIS as an Agent job, it fails completely or part way through. When it partially runs, the part that it is failing on is a Script Task that moves the source data file to an archive folder (on the same server).
    I have tried using my domain account as the owner of the job, then the job fails straight off and I get an error:
    Unable to determine if the owner (Domain\MyID) of job JobName has server access (reason: Could not obtain information about Windows NT group/user 'Domain\MyID'
    If I change the owner to the 'sa' account , then the job partially runs, but then fails because 'sa' is a SQL account and does not have access to the filesystem.
    I have managed to get it to work by using the SQL2008_Local account and granting modify permissions to the affected folders.
    My question is - what is the advised way of doing this?
    Thanks
    Gary

    Hi Garyv.King,
    When you see a SSIS package fails running in a SQL Agent job, you need to first consider the following conditions:
    1. The user account that is used to run the package under SQL Server Agent differs from the original package author.
    2. The user account does not have the required permissions to make connections or to access resources outside the SSIS package.
    For more detailed information about the issue, please following this KB article:
    An SSIS package does not run when you call the SSIS package from a SQL Server Agent job step
    http://support.microsoft.com/kb/918760 
    You can check SQL Server Agent’s activity logs, Windows Event logs and SSIS logs to get more clues. Also the tool Process Monitor is helpful to track the cause of registry or file access related issues.
    The following 4 issues are common encountered in the SSIS forum.
    1. The package's Protection Level is set to EncryptSensitiveWithUserKey but your SQL Server Agent service account is different from the SSIS package creator.
    2. Data source connection issue.
    3. File or registry access permission issue.
    4. No 64-bit driver issue.
    For more information about it, please see:
    How do I troubleshoot SSIS packages failed execution in a SQL Agent job:
    http://social.technet.microsoft.com/Forums/en-US/sqlintegrationservices/thread/e13c137c-1535-4475-8c2f-c7e6e7d125fc 
    Thanks,
    Eileen

  • VBScript Runs Correctly From Command Prompt, But Not From SQL Server Agent Job

    I'm trying to run this script on my local machine to do some post-batch cleanup and it doesn't run correctly from the scheduled job (or when I invoke the job).
    Here's the script in question:
    Option Explicit
    Const filePath = "C:\Documents and Settings\jmunn\My Documents\Visual Studio 2008\Logs\"
    Const holdDays = 6
    main
    Sub Main()
    ClearArchive
    End Sub
    Sub ClearArchive()
    Dim fso 'As Scripting.FileSystemObject
    Dim fld 'As Scripting.Folder
    Dim f 'As Scripting.File
    Dim delLogName, delLogOut, delCtr
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set fld = fso.GetFolder(filePath)
    delLogName = filePath & "Nightly Backup - Backup Logs Deleted" & ".txt"
    Set delLogOut = fso.CreateTextFile(delLogName, True)
    delLogOut.WriteLine(delLogName)
    delLogOut.WriteLine("")
    delLogOut.WriteLine("-- The following log files were deleted on " & DateValue(Now()) & " at " & TimeValue(Now()))
    delLogOut.WriteLine("")
    delCtr = 0
    For Each f In fld.Files
    If Left(f.Name, 48) = "Nightly Backup - SQL Server Databases_Subplan_1_" And Right(LCase(f.Name), 4) = ".txt" Then
    If DateDiff("d", f.DateCreated, Date()) > holdDays Then
    delLogOut.WriteLine(f.Name)
    fso.DeleteFile f, True
    delCtr = delCtr + 1
    End If
    End If
    Next
    If delCtr = 0 Then
    delLogOut.WriteLine("No log files were deleted this run...")
    End If
    Set fld = Nothing
    Set fso = Nothing
    delLogOut.Close
    End Sub
    If I put the script in its own file and run it from the command prompt, it runs just fine. If the script runs from the SQL Server Agent job, the for-loop will delete the files correctly, but the filenames
    do not get written to the deletion log file and the counter does not get incremented, so according to the job log, nothing was deleted. Why does the script run differently from each invocation? It can't be a permission thing, the service that logs in has full
    access to the directory and the files do get deleted. Any ideas out there?
    Between this and other outstanding issues, I'm quickly losing faith in SQL Server.  >=o(
    Thanks in advance for your thoughts!
    John
    Version Info:
    Microsoft SQL Server Management Studio      10.0.2531.0
    Microsoft Analysis Services Client Tools      10.0.1600.22
    Microsoft Data Access Components (MDAC)      3.85.1132
    Microsoft MSXML      2.6 3.0 4.0 5.0 6.0
    Microsoft Internet Explorer      8.0.6001.18702
    Microsoft .NET Framework      2.0.50727.3603
    Operating System      5.1.2600
    "A bus station is where a bus stops. A train station is where a train stops. On my desk I have a workstation..."

    Hi
    jrmunn
    i am trying to execute VB script to refresh my excel files.. using Vbscript file through SQL Agent job step.
    i have copied VBscript in a file with the extension RefreshExcel.vbs kept in C:\RefreshExcel.vbs
    Below is the script used inside the file (RefreshExcel.vbs)
    //---Script code-----------------------------------------------------------------
    Dim objXL, objWB
    Dim FileLocation, FileName
    On Error Resume Next
    'lgnConn = 1
    FileLocation = "F:\Reports\Reports"
    Set objXL = CreateObject("Excel.Application")
    objXL.DisplayAlerts = False
    FileName = "ReportFile1.xlsx"
    'MsgBox (FileLocation & "/" & FileName)
    Set objWB = objXL.Workbooks.Open(FileLocation & "/" & FileName)
    objWB.EnableConnections
    objXL.CalculateUntilAsyncQueriesDone
    objWB.RefreshAll
    objXL.CalculateUntilAsyncQueriesDone
    objWB.RefreshAll
    objXL.CalculateUntilAsyncQueriesDone
    objWB.Save
    objWB.Close
    Set objWS = Nothing
    Set objWB = Nothing
    objXL.Quit
    Set objXL = Nothing
    'MsgBox ("Refresh Completed")
    ---------------------------------------------------------------------------------------------------//Script complete
    Now when i am trying to call this script file in SQL agent job step (as you mentioned )
    as Type -cmdExec(OperatingSystem)
    cscript "C:\RefreshExcel.vbs"
    Issue: job step executed succesfully ,,but without performing any refresh on the excel. So i am not understandig what is going wrong. the same script file work when i am calling it through a batch file (window scheuler task). But it doesnt support
    to run the file "when user is not logged in"
    that is why  i want to refresh my excel file through sql agent ,which can be scheduled to any time and cab be run as SQL agent credentials.
    Can you please help me on this ...i have tried all the option but nothing working .. found hope by seeing your solution.
    Thanks in advance.
    Please help me. :-(

  • One sql server agent job suspend

    One sql server agent job--run full backup of one database is suspended from activity monitor.
    How to find why it is suspended and troubleshoot?

    "Suspended" is a common status for a thread.  It indicates the thread is waiting on an external resource, which backups often are
    Check few things:
    1. Database size, how much backup is completed from below command and location where backup files are being placed
    select session_id,command, percent_complete
    from sys.dm_exec_requests
    If that on network than might be due to slow netword backup take some time.
    2. Check job history, expected
    completion time of backup job and also if any change in the I/O and CPU time for the SPID
    3.Check wait type of suspended spid, SQL server and event viewer logs. If any I/O issue on the server. Like disk responding slowly that might be a cause of delay.
    Please click the Mark as answer button and vote as helpful if this reply solves your problem

  • SQL Server Agent Job

    I want to learn how to create a SQL Server Agent Job. After I googled it, I see that it can be found under Databases under Object Explorer, But I don't see that option. Can someone tell me where is it or how can i create one? I also need to
    understand the steps to create one. (I just have basic knowledge of SQL Server of using small queries like Update, Delete, Select statements, etc). A plain english explanation would be very helpful.

    BOL: "Create a Job
    This topic describes how to create a SQL Server Agent job in SQL Server 2014 by using SQL Server Management Studio, Transact-SQL, or SQL Server Management Objects (SMO)."
    https://msdn.microsoft.com/en-us/library/ms190268.aspx
    See SSMS image for new job:
    Kalman Toth Database & OLAP Architect
    SQL Server 2014 Database Design
    New Book / Kindle: Beginner Database Design & SQL Programming Using Microsoft SQL Server 2014

  • SQL Server agent job failing to back up database

    I have set up a SQL server agent job to back up database on regular basis.. For some reason the back up fails.. Could not find any meaningful info in the logs.. Transaction logs are getting created for the same DB but not the database back up..
    The below is my environment..
    MS SQL Server 2005 - 9.00.1399.06
    Windows 2003 server SP2
    Any pointers would be helpful.. I checked the event logs and the agent logs and did not see obvious error.
    Thanks

    I have set up a SQL server agent job to back up database on regular basis.. For some reason the back up fails.. Could not find any meaningful info in the logs.. Transaction logs are getting created for the same DB but not the database back up..
    The below is my environment..
    MS SQL Server 2005 - 9.00.1399.06
    Windows 2003 server SP2
    Any pointers would be helpful.. I checked the event logs and the agent logs and did not see obvious error.
    Thanks
    NO answer can be provided unless you show us the error message. There can be numerous reasons for backup job to fail. See job history for details please post complete information present in job history.
    Check errorlog and note what error message is there at time when the backup job failed. You could find something useful. Please learn how to post question in forum just saying I have a problem will not help both of us.
    Please mark this reply as answer if it solved your issue or vote as helpful if it helped so that other forum members can benefit from it.
    My TechNet Wiki Articles

  • Can't launch executable from SQL Server Agent Job

    I'm trying to launch an .exe from SQL Server Agent Job and basically nothing happens. I created a job, with 1 step, type is Operating System (CmdExec), run as sql agent service account, and in the command box I typed "start notepad" (no quotes). The job owner is set to administrator. I manually start the job, it processes successfully yet notepad does not launch. I've tried with other .exe's and result is the same. Any advice? Thanks!

    I tried several things and not just with notepad, I tried a couple other small executables. I've tried:
    c:\notepad       --(I copied it to c:\ thinking it maybe it's not finding the file.)
    c:\notepad.exe
    notepad.exe
    start notepad
    start notepad.exe
    and also launching it from a batch file.
    If I use just notepad the job hangs saying it's executing and I have to stop it. If I use start notepad it comes back as executed but actually nothing happens, ie, notepad does not launch. I've tried different security settings within SQL Server (ie assigning all available default roles to the login at the same time and individually one at a time) with identical results. SQL Server is loging in with local administrator priviledges and so is SQL Server Agent. My settings are the default installation settings (for Windows Server 2003 and SQL Server 2005) except that I read the BOL page "Configuring SQL Server Agent" which indicates the permissions needed for the following:
    Adjust memory quotas for a process
    Act as part of the operating system
    Bypass traverse checking
    Log on as a batch job
    Log on as a service
    Replace a process level token
    And they have been set. Still the same. BTW, I get the same result when trying to launch the file using xp_cmdshell with all the variations, and the proxy account for xp_cmdshell has been set to a login with administrator priviledges....
    I think it's some security setting in Windows Server, if only because I think I've tried all the settings within SQL Server...
    BTW, also, nothing is setup for Proxies under the SQL Server Agent node, but I don't think I should need to if I'm using the administrator level login...

Maybe you are looking for