IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Développement SQL Server Discussion :

Exécuter un Job sur SqlServer même après que la date soit passée


Sujet :

Développement SQL Server

  1. #1
    Candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2015
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Haïti

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2015
    Messages : 6
    Points : 3
    Points
    3
    Par défaut Exécuter un Job sur SqlServer même après que la date soit passée
    Bonjour à tous
    je dois créer une procédure stockée qui doit exécuter un Job avec une date précise (à titre d'exemple : Lundi a 3h00 am),
    mon problème c'est qu'il y a de fortes chances qu'a cette heure-là, mon serveur soit éteint au moment où je Job va s'exécuter .
    J'aimerais que le Job s'exécute dès que mon serveur s'allume.

    Est ce possible, si oui comment faire.

    je vous remercie d'avance.

  2. #2
    Invité
    Invité(e)
    Par défaut
    Un serveur de bd éteint ? Qu'est-ce qui justifie ça ?

  3. #3
    Candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2015
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Haïti

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2015
    Messages : 6
    Points : 3
    Points
    3
    Par défaut
    Citation Envoyé par 7gyY9w1ZY6ySRgPeaefZ Voir le message
    Un serveur de bd éteint ? Qu'est-ce qui justifie ça ?

    En fait je Parle d'un serveur en production d'une entreprise qui pourrait être éteint durant la nuit ou en fin de semaine (Samedi, Dimanche)
    la procédure Stockée devra prendre une date depuis ma page web (je ne pourrai pas choisir la date c'est l'utilisateur qui le fera) et le Job devra être exécuté durant la nuit à 3h00 am ( la date choisie par l'utilisateur), maintenant dans le cas ou l'administrateur éteint le serveur (ne me demandez pas "pourquoi ?" c'est comme ça) je dois être capable de vérifier si le Job n'est pas encore exécuté (si c'est possible bien sûr) et de l'éxecuter au premier lancement de la machine (du serveur)

  4. #4
    Invité
    Invité(e)
    Par défaut
    Il faut déjà lui expliqué que ça n'a pas de sens d'arrêter un serveur SQL en dehors des maintenances.
    En tout cas, dans le schedule de la tâche, tu peux en ajouter un avec « start automatically when SQL Server Agent Starts » et dans le code tu rajoutes une condition qui vérifie dans les tables système d'exécution des jobs s'il a effectivement été lancé le dimanche à 3 h, si oui, tu sors, si non tu lances la job.
    Y a peut-être plus simple mais là, je n'ai pas mieux.

  5. #5
    Candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2015
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Haïti

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2015
    Messages : 6
    Points : 3
    Points
    3
    Par défaut
    Ok merci ,
    je vais aller sur cette piste de reflexion
    Mais c'est encore flou

  6. #6
    Candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2015
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Haïti

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2015
    Messages : 6
    Points : 3
    Points
    3
    Par défaut
    je suis aller sur cette piste que vous m'avez donner .
    mais quand j'ai ajouter "start automatically when SQL Server Agent Starts" dans mon code ,le Job ne s'execute plus
    que faire s'il vous plait ????

  7. #7
    Candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2015
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Haïti

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2015
    Messages : 6
    Points : 3
    Points
    3
    Par défaut
    Voici mon code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    go
    alter procedure [dbo].[SP_add_job_quick] 
    @job nvarchar(128),
    @mycommand nvarchar(max), 
    @servername nvarchar(28),
    @startdate nvarchar(8),
    @starttime nvarchar(8)
    as
    --Add a job
    EXEC msdb.dbo.sp_add_job
        @job_name = @job ;
    --Add a job step named process step. This step runs the stored procedure
    EXEC msdb.dbo.sp_add_jobstep
        @job_name = @job,
        @step_name = N'process step',
        @subsystem = N'TSQL',
        @command = @mycommand
    --Schedule the job at a specified date and time
    exec msdb.dbo.sp_add_jobschedule 
    @job_name = @job
    ,@name = 'MySchedule'
    ,@freq_type=64 --1 Run when the SQL Server Agent service starts. 1 	Once
    ,@active_start_date = @startdate
    ,@active_start_time = @starttime
    -- Add the job to the SQL Server Server
    EXEC msdb.dbo.sp_add_jobserver
        @job_name =  @job,
        @server_name = @servername

    je sélectionne le code ci-dessous et je l’exécute


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    exec dbo.sp_add_job_quick 
    @job = 'myjob8', -- The job name
    @mycommand = 'exec NomDeMaBaseDeDonnee.dbo.SP_TestNiniUpdate_Contrat', -- The T-SQL command to run in the step exec dbo.StoredProcedure 
    @servername = '(local)', -- SQL Server name. If running localy, you can use @servername=@@Servername
    @startdate = '20170817', -- The date August 17th, 2017
    @starttime = '165500' -- The time, 16:55:00
    Au cas où vous vouliez voir

    et j'ai regardé ce lien

    https://docs.microsoft.com/en-us/sql...e-transact-sql

    pour savoir quoi mettre dans @freq_type=64 du store sp_add_job énoncé plus Haut

    Merci

  8. #8
    Membre éclairé
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Décembre 2007
    Messages
    327
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Décembre 2007
    Messages : 327
    Points : 674
    Points
    674
    Par défaut
    Bonjour,

    Pourquoi ne pas créer un script qui s’exécute au démarrage du serveur qui va démarrer l'agent SQL vérifier votre cas et lancer le job ?

    Pour ce faire voici quelques pistes :

    https://technet.microsoft.com/fr-fr/...=sql.105).aspx => Pour demarrer votre JOB

    https://msdn.microsoft.com/fr-fr/lib...=sql.120).aspx => pour demarrer l'agent SQL

    https://msdn.microsoft.com/fr-fr/lib...=sql.120).aspx => pour récuperer des valeurs de vérification par exemple

    A+

    Julien
    MCSA SQL SERVER |MCT | MVP Data Platform

  9. #9
    Candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2015
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Haïti

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2015
    Messages : 6
    Points : 3
    Points
    3
    Par défaut
    Ça pourrait être une bonne idée, mais ma contrainte c'est de tout faire en Sql (ou quelque part d'autres de façon générale)

    merci quand même

  10. #10
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 761
    Points : 52 547
    Points
    52 547
    Billets dans le blog
    5
    Par défaut
    Il suffit d'incoporer en première étape une commande du genre :
    si ladate n'est pas passé alors sortir
    et programmer cette tache en exécution toutes les minutes avec suppression après exécution (ou bien ajouter une étape finale de désactivation).

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  11. #11
    Membre éclairé
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Décembre 2007
    Messages
    327
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Décembre 2007
    Messages : 327
    Points : 674
    Points
    674
    Par défaut
    Citation Envoyé par veryglow Voir le message
    Ça pourrait être une bonne idée, mais ma contrainte c'est de tout faire en Sql (ou quelque part d'autres de façon générale)

    merci quand même


    Votre Procédure sera en SQL il faut juste un script Power Shell pour venir lancer votre code SQL au démarrage de la machine, l'agent SQL peut etre démarré de manière automatique a chaque redémarrage ...
    MCSA SQL SERVER |MCT | MVP Data Platform

Discussions similaires

  1. C sur mac, même chose que sur pc?
    Par Nitrox06 dans le forum Débuter
    Réponses: 4
    Dernier message: 09/05/2009, 16h06
  2. Mettre MySQL sur le même serveur que Sharepoint
    Par pjl60 dans le forum SharePoint
    Réponses: 1
    Dernier message: 12/12/2008, 00h29
  3. Ouvrir l'iframe sur la même page que ma page principale
    Par beegees dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 02/10/2008, 17h52
  4. [footnote] Affichage du n° sur la même page que la note
    Par Panthère Bleue dans le forum Mise en forme
    Réponses: 3
    Dernier message: 19/06/2008, 15h28

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo