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

MS SQL Server Discussion :

Comment planifier une tâche avec MS SQL SERVER ?


Sujet :

MS SQL Server

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 115
    Par défaut Comment planifier une tâche avec MS SQL SERVER ?
    Bonjour,

    Je travaille avec Sql Server 2000. Je veux planifier l'envoyer d'un fichier à tous les utilisateurs. un envoi jounalier et automatique.

    Comment le faire?

    Merci de m'aider.

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    356
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Mai 2007
    Messages : 356
    Par défaut
    Je pense que tu devrais rechercher du côté des travaux (job) SQL Server. Ils te permettent de déclencher une série de commandes. Le mieux est d'utiliser que des commandes SQL.

    Dans ton cas je privilègerais lédition d'une petite application se connectant à ta base de données pour récupérer les infos nécessaires et effectuer la tâche métier que tu souhaites. Ensuite en fonction du serveur sur lequel tu te situes, je définierai une tâche planifiée pour windows ou un script de déclenchement pour linux.

    Après le choix de la solution dépend de la complexité de ton architecture (logiciel et physique).

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 115
    Par défaut
    Oui, C'est un "Job" que j'essais de réaliser pour cette tâche. Mais je ne maitrise pas les paramètres necessaires, et à chaque, il y a une erreur avec une croix rouge sur le "Job"...

    Pourrais m'aider par rapport aux paramètres ?

    Merci

  4. #4
    Membre émérite
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Août 2006
    Messages
    730
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 730
    Par défaut
    peux-tu faire
    click droit sur le job => générer script sql

    et poster ton script

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 115
    Par défaut
    serge0934 Voici le code qui a été généré...

    Script generated on 18/07/2007 11:28
    -- By: toto
    -- Server: CHOP\FIRMA

    BEGIN TRANSACTION
    DECLARE @JobID BINARY(16)
    DECLARE @ReturnCode INT
    SELECT @ReturnCode = 0
    IF (SELECT COUNT(*) FROM msdb.dbo.syscategories WHERE name = N'[Uncategorized (Local)]') < 1
    EXECUTE msdb.dbo.sp_add_category @name = N'[Uncategorized (Local)]'

    -- Delete the job with the same name (if it exists)
    SELECT @JobID = job_id
    FROM msdb.dbo.sysjobs
    WHERE (name = N'EnvoiIndicateur')
    IF (@JobID IS NOT NULL)
    BEGIN
    -- Check if the job is a multi-server job
    IF (EXISTS (SELECT *
    FROM msdb.dbo.sysjobservers
    WHERE (job_id = @JobID) AND (server_id <> 0)))
    BEGIN
    -- There is, so abort the script
    RAISERROR (N'Unable to import job ''EnvoiIndicateur'' since there is already a multi-server job with this name.', 16, 1)
    GOTO QuitWithRollback
    END
    ELSE
    -- Delete the [local] job
    EXECUTE msdb.dbo.sp_delete_job @job_name = N'EnvoiIndicateur'
    SELECT @JobID = NULL
    END

    BEGIN

    -- Add the job
    EXECUTE @ReturnCode = msdb.dbo.sp_add_job @job_id = @JobID OUTPUT , @job_name = N'EnvoiIndicateur', @owner_login_name = N'toto', @description = N'Execute package: EnvoiIndicateur', @category_name = N'[Uncategorized (Local)]', @enabled = 1, @notify_level_email = 0, @notify_level_page = 0, @notify_level_netsend = 0, @notify_level_eventlog = 2, @delete_level= 0
    IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback

    -- Add the job steps
    EXECUTE @ReturnCode = msdb.dbo.sp_add_jobstep @job_id = @JobID, @step_id = 1, @step_name = N'EnvoiIndicateur', @command = N'DTSRun /~Z0xAABAD439EA04A75909C535B2C1F286921A7D70225416875C866FB721053C05967DF0255E2A7AC48C4C5CC669B6B3C0FD93A61D850FFE4B3002BBF857DCCE18E23C73CD85445010E3E4B1CDD5F092DBBEF7FBA799216AF82ABEC43353EAA5885EB74B2B4AEF9484DFBE17917F8DA96AA32C350FBA6AFC680AD99CB135891F9AC0C40573722D179CE2B1AD800310F47975ACBC7C39A7111794F851FC02247F194669310D ', @database_name = N'', @server = N'', @database_user_name = N'', @subsystem = N'CmdExec', @cmdexec_success_code = 0, @flags = 0, @retry_attempts = 0, @retry_interval = 0, @output_file_name = N'', @on_success_step_id = 0, @on_success_action = 1, @on_fail_step_id = 0, @on_fail_action = 2
    IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
    EXECUTE @ReturnCode = msdb.dbo.sp_update_job @job_id = @JobID, @start_step_id = 1

    IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback

    -- Add the job schedules
    EXECUTE @ReturnCode = msdb.dbo.sp_add_jobschedule @job_id = @JobID, @name = N'EnvoiIndicateur', @enabled = 1, @freq_type = 4, @active_start_date = 20070717, @active_start_time = 174500, @freq_interval = 1, @freq_subday_type = 4, @freq_subday_interval = 1, @freq_relative_interval = 1, @freq_recurrence_factor = 0, @active_end_date = 20070718, @active_end_time = 235959
    IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback

    -- Add the Target Servers
    EXECUTE @ReturnCode = msdb.dbo.sp_add_jobserver @job_id = @JobID, @server_name = N'(local)'
    IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback

    END
    COMMIT TRANSACTION
    GOTO EndSave
    QuitWithRollback:
    IF (@@TRANCOUNT > 0) ROLLBACK TRANSACTION
    EndSave:

    Merci!!!

  6. #6
    Membre émérite
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Août 2006
    Messages
    730
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 730
    Par défaut
    donc ton job est bien enregistré !

    as-tu essayé de lancer le DTS envoiindicateur "a la main" au moins une fois

    si oui et que cela a fonctionné, tu as peut-être un pb de droit d'"EXEC" sur ton serveur: es t'il lancé en user/pwd admin ( ton toto est-il admin ?)

    je reviens vers 14h

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 115
    Par défaut
    Oui, quand je le lance mannuellement, par "Executer", ça marche sans pb. Et toto est "System Administrators"

    Merci; bon ap

  8. #8
    Membre émérite
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Août 2006
    Messages
    730
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 730
    Par défaut
    qu'est ce qu'il te mets comme erreur

    click droit sur le job, voir les erreurs

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 115
    Par défaut
    Voici le message qu'il m'affiche:

    The job failed. The Job was invoked by User toto. The last step to run was step 1 (EnvoiIndicateur).

    Merci

  10. #10
    Membre émérite
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Août 2006
    Messages
    730
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 730
    Par défaut
    comme ton job n'a qu'une seule étape, c'est ton code de retour du DTS qui est <>0

    ou que le job redémarre avant que le précédent soit fini

  11. #11
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 115
    Par défaut
    Dans ce cas, comment faire ?

    Merci

  12. #12
    Membre émérite
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Août 2006
    Messages
    730
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 730
    Par défaut
    dans le premier cas, (code retour), c'est pas grave car il doit l'exécuter comme il faut mais se planter dans le retour => il sera en rouge mais ok


    dans le second cas => positionne l'intervalle en conséquence


    pour voir le résultat, ajoute quelque chose comme un log en fin de ton DTS
    un insert dans une table par exemple

Discussions similaires

  1. Réponses: 2
    Dernier message: 26/01/2009, 15h38
  2. Réponses: 2
    Dernier message: 20/03/2007, 17h00
  3. Comment protéger une base de données SQL Server
    Par ssakhri dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 03/01/2007, 09h06
  4. Réponses: 9
    Dernier message: 02/01/2007, 12h03
  5. Comment afficher une colonne text de SQL-server?
    Par oravelon dans le forum ASP
    Réponses: 2
    Dernier message: 18/08/2005, 09h11

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