Conditional EXEC dbo statement. Force error if exists, else succeed





.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty{ height:90px;width:728px;box-sizing:border-box;
}







0















I'm trying to write a script that will exit as an error when there are currently SQL agent jobs running. I would also like it to succeed (exit 0) if there are no jobs running.



Something like below.



IF
EXEC msdb.dbo.sp_help_job @execution_status=1
THEN
RAISE ERROR
ELSE
COMPILE SUCCESS









share|improve this question































    0















    I'm trying to write a script that will exit as an error when there are currently SQL agent jobs running. I would also like it to succeed (exit 0) if there are no jobs running.



    Something like below.



    IF
    EXEC msdb.dbo.sp_help_job @execution_status=1
    THEN
    RAISE ERROR
    ELSE
    COMPILE SUCCESS









    share|improve this question



























      0












      0








      0


      1






      I'm trying to write a script that will exit as an error when there are currently SQL agent jobs running. I would also like it to succeed (exit 0) if there are no jobs running.



      Something like below.



      IF
      EXEC msdb.dbo.sp_help_job @execution_status=1
      THEN
      RAISE ERROR
      ELSE
      COMPILE SUCCESS









      share|improve this question
















      I'm trying to write a script that will exit as an error when there are currently SQL agent jobs running. I would also like it to succeed (exit 0) if there are no jobs running.



      Something like below.



      IF
      EXEC msdb.dbo.sp_help_job @execution_status=1
      THEN
      RAISE ERROR
      ELSE
      COMPILE SUCCESS






      sql sql-server tsql






      share|improve this question















      share|improve this question













      share|improve this question




      share|improve this question








      edited Jan 3 at 4:44









      Dale Burrell

      3,43452655




      3,43452655










      asked Jan 3 at 4:36









      BananaBanana

      31




      31
























          1 Answer
          1






          active

          oldest

          votes


















          0














          The following code will help you. You may need to change the code for your required action.
          First, you need to create a Stored Procedure:



          CREATE PROCEDURE YourProc
          AS
          BEGIN
          DECLARE @ErrMsg NVARCHAR(MAX), @ErrSeverity INT
          SET XACT_ABORT OFF
          BEGIN TRY
          IF EXISTS (
          SELECT *
          FROM msdb.dbo.sysjobs_view job
          INNER JOIN msdb.dbo.sysjobactivity activity
          ON job.job_id = activity.job_id
          WHERE activity.run_Requested_date IS NOT NULL
          AND activity.stop_execution_date IS NULL)
          BEGIN
          SELECT @ErrMsg = 'There is a Job already running',
          @ErrSeverity = 1;
          RAISERROR (@ErrMsg, @ErrSeverity, 1);
          END
          ELSE
          PRINT 'No Jobs running'
          END TRY

          BEGIN CATCH
          SELECT @ErrMsg = ERROR_MESSAGE(),
          @ErrSeverity = ERROR_SEVERITY();
          RAISERROR (@ErrMsg, @ErrSeverity, 1);
          END CATCH
          END


          Then, you can call your procedure:



          EXEC YourProc





          share|improve this answer
























            Your Answer






            StackExchange.ifUsing("editor", function () {
            StackExchange.using("externalEditor", function () {
            StackExchange.using("snippets", function () {
            StackExchange.snippets.init();
            });
            });
            }, "code-snippets");

            StackExchange.ready(function() {
            var channelOptions = {
            tags: "".split(" "),
            id: "1"
            };
            initTagRenderer("".split(" "), "".split(" "), channelOptions);

            StackExchange.using("externalEditor", function() {
            // Have to fire editor after snippets, if snippets enabled
            if (StackExchange.settings.snippets.snippetsEnabled) {
            StackExchange.using("snippets", function() {
            createEditor();
            });
            }
            else {
            createEditor();
            }
            });

            function createEditor() {
            StackExchange.prepareEditor({
            heartbeatType: 'answer',
            autoActivateHeartbeat: false,
            convertImagesToLinks: true,
            noModals: true,
            showLowRepImageUploadWarning: true,
            reputationToPostImages: 10,
            bindNavPrevention: true,
            postfix: "",
            imageUploader: {
            brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
            contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
            allowUrls: true
            },
            onDemand: true,
            discardSelector: ".discard-answer"
            ,immediatelyShowMarkdownHelp:true
            });


            }
            });














            draft saved

            draft discarded


















            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f54016407%2fconditional-exec-dbo-statement-force-error-if-exists-else-succeed%23new-answer', 'question_page');
            }
            );

            Post as a guest















            Required, but never shown

























            1 Answer
            1






            active

            oldest

            votes








            1 Answer
            1






            active

            oldest

            votes









            active

            oldest

            votes






            active

            oldest

            votes









            0














            The following code will help you. You may need to change the code for your required action.
            First, you need to create a Stored Procedure:



            CREATE PROCEDURE YourProc
            AS
            BEGIN
            DECLARE @ErrMsg NVARCHAR(MAX), @ErrSeverity INT
            SET XACT_ABORT OFF
            BEGIN TRY
            IF EXISTS (
            SELECT *
            FROM msdb.dbo.sysjobs_view job
            INNER JOIN msdb.dbo.sysjobactivity activity
            ON job.job_id = activity.job_id
            WHERE activity.run_Requested_date IS NOT NULL
            AND activity.stop_execution_date IS NULL)
            BEGIN
            SELECT @ErrMsg = 'There is a Job already running',
            @ErrSeverity = 1;
            RAISERROR (@ErrMsg, @ErrSeverity, 1);
            END
            ELSE
            PRINT 'No Jobs running'
            END TRY

            BEGIN CATCH
            SELECT @ErrMsg = ERROR_MESSAGE(),
            @ErrSeverity = ERROR_SEVERITY();
            RAISERROR (@ErrMsg, @ErrSeverity, 1);
            END CATCH
            END


            Then, you can call your procedure:



            EXEC YourProc





            share|improve this answer




























              0














              The following code will help you. You may need to change the code for your required action.
              First, you need to create a Stored Procedure:



              CREATE PROCEDURE YourProc
              AS
              BEGIN
              DECLARE @ErrMsg NVARCHAR(MAX), @ErrSeverity INT
              SET XACT_ABORT OFF
              BEGIN TRY
              IF EXISTS (
              SELECT *
              FROM msdb.dbo.sysjobs_view job
              INNER JOIN msdb.dbo.sysjobactivity activity
              ON job.job_id = activity.job_id
              WHERE activity.run_Requested_date IS NOT NULL
              AND activity.stop_execution_date IS NULL)
              BEGIN
              SELECT @ErrMsg = 'There is a Job already running',
              @ErrSeverity = 1;
              RAISERROR (@ErrMsg, @ErrSeverity, 1);
              END
              ELSE
              PRINT 'No Jobs running'
              END TRY

              BEGIN CATCH
              SELECT @ErrMsg = ERROR_MESSAGE(),
              @ErrSeverity = ERROR_SEVERITY();
              RAISERROR (@ErrMsg, @ErrSeverity, 1);
              END CATCH
              END


              Then, you can call your procedure:



              EXEC YourProc





              share|improve this answer


























                0












                0








                0







                The following code will help you. You may need to change the code for your required action.
                First, you need to create a Stored Procedure:



                CREATE PROCEDURE YourProc
                AS
                BEGIN
                DECLARE @ErrMsg NVARCHAR(MAX), @ErrSeverity INT
                SET XACT_ABORT OFF
                BEGIN TRY
                IF EXISTS (
                SELECT *
                FROM msdb.dbo.sysjobs_view job
                INNER JOIN msdb.dbo.sysjobactivity activity
                ON job.job_id = activity.job_id
                WHERE activity.run_Requested_date IS NOT NULL
                AND activity.stop_execution_date IS NULL)
                BEGIN
                SELECT @ErrMsg = 'There is a Job already running',
                @ErrSeverity = 1;
                RAISERROR (@ErrMsg, @ErrSeverity, 1);
                END
                ELSE
                PRINT 'No Jobs running'
                END TRY

                BEGIN CATCH
                SELECT @ErrMsg = ERROR_MESSAGE(),
                @ErrSeverity = ERROR_SEVERITY();
                RAISERROR (@ErrMsg, @ErrSeverity, 1);
                END CATCH
                END


                Then, you can call your procedure:



                EXEC YourProc





                share|improve this answer













                The following code will help you. You may need to change the code for your required action.
                First, you need to create a Stored Procedure:



                CREATE PROCEDURE YourProc
                AS
                BEGIN
                DECLARE @ErrMsg NVARCHAR(MAX), @ErrSeverity INT
                SET XACT_ABORT OFF
                BEGIN TRY
                IF EXISTS (
                SELECT *
                FROM msdb.dbo.sysjobs_view job
                INNER JOIN msdb.dbo.sysjobactivity activity
                ON job.job_id = activity.job_id
                WHERE activity.run_Requested_date IS NOT NULL
                AND activity.stop_execution_date IS NULL)
                BEGIN
                SELECT @ErrMsg = 'There is a Job already running',
                @ErrSeverity = 1;
                RAISERROR (@ErrMsg, @ErrSeverity, 1);
                END
                ELSE
                PRINT 'No Jobs running'
                END TRY

                BEGIN CATCH
                SELECT @ErrMsg = ERROR_MESSAGE(),
                @ErrSeverity = ERROR_SEVERITY();
                RAISERROR (@ErrMsg, @ErrSeverity, 1);
                END CATCH
                END


                Then, you can call your procedure:



                EXEC YourProc






                share|improve this answer












                share|improve this answer



                share|improve this answer










                answered Jan 3 at 5:43









                Angel M.Angel M.

                1,312415




                1,312415
































                    draft saved

                    draft discarded




















































                    Thanks for contributing an answer to Stack Overflow!


                    • Please be sure to answer the question. Provide details and share your research!

                    But avoid



                    • Asking for help, clarification, or responding to other answers.

                    • Making statements based on opinion; back them up with references or personal experience.


                    To learn more, see our tips on writing great answers.




                    draft saved


                    draft discarded














                    StackExchange.ready(
                    function () {
                    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f54016407%2fconditional-exec-dbo-statement-force-error-if-exists-else-succeed%23new-answer', 'question_page');
                    }
                    );

                    Post as a guest















                    Required, but never shown





















































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown

































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown







                    Popular posts from this blog

                    MongoDB - Not Authorized To Execute Command

                    in spring boot 2.1 many test slices are not allowed anymore due to multiple @BootstrapWith

                    Npm cannot find a required file even through it is in the searched directory