bonsoir à tous,
comment on crée un job sous sql server?
merci à tous
Version imprimable
bonsoir à tous,
comment on crée un job sous sql server?
merci à tous
Bonsoir,
Soit par la console de management,
ou par le code :Code:Sous SQL Server Agent > Dossier job > clic droit et new job
++Code:sp_add_job ...
bnjour,
sp_add_job [@job_name =] 'job_name'
[,[@enabled =] enabled]
[,[@description =] 'description']
[,[@start_step_id =] step_id]
[,[@category_name =] 'category']
[,[@category_id =] category_id]
[,[@owner_login_name =] 'login']
[,[@notify_level_eventlog =] eventlog_level]
[,[@notify_level_email =] email_level]
[,[@notify_level_netsend =] netsend_level]
[,[@notify_level_page =] page_level]
[,[@notify_email_operator_name =] 'email_name']
[,[@notify_netsend_operator_name =] 'netsend_name']
[,[@notify_page_operator_name =] 'page_name']
[,[@delete_level =] delete_level]
[,[@job_id =] job_id OUTPUT]
mais je vois pas le parametre qui indique le contenu de la tache et à quelle heure se declenche cette tache?
merci d'avance
Les étapes pour créer un job pour vos besoins :
Vous pouvez paramétrer d'autres options. Je vous invite à regarder la documentation sqlserver ou msdnCode:
1
2
3
4
5
6
7
8
9 -- Création du job sp_add_job ... -- Création et ajout du contenu des étapes au job sp_add_jobstep ..... -- Planification du job sp_add_jobschedule ....
bonjour,
j'ai essayé de faire un job qui consiste à demarrer un service,
j'ai le message suivant:"Le travail 'myTestJob1' a démarré avec succès."
mais le service n'a pas eté demarré.
voici mon code de job
si kelk1 peut m'aider..c tres urgentCode:
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 EXEC sp_add_job @job_name = 'myTestJob1', @enabled = 1, @description = 'myTestJob1', @owner_login_name = 'sa', @notify_level_eventlog = 2, @notify_level_email = 0, @notify_level_netsend =0, @notify_level_page = 0 EXEC sp_add_jobstep @job_name = N'myTestJob1', @step_name = N'Activer service leger1', @step_id=1, @subsystem = N'TSQL', @command = N'exec DemarrerServiceThin', @retry_attempts = 5, @retry_interval = 1 EXEC sp_add_jobschedule @job_name = 'myTestJob1', @name = 'ScheduledDemarre1', @freq_type = 4, -- daily @freq_interval = 1, @active_start_time = '153800' EXEC sp_add_jobserver @job_name = 'myTestJob1', @server_name = N'standard' EXEC sp_start_job @job_name = 'myTestJob1'
- Avez vous consulté l'historique de votre job ?
- En exécutant votre code directement
est ce que votre service démarre ?Code:exec DemarrerServiceThin
Quel est vote code SQL pour démarrer votre service ?
++
Normal, vous indiquez que vous allez utiliser du code Transact SQL et vous lancez une commande OS !Citation:
@subsystem = N'TSQL',
@command = N'exec DemarrerServiceThin',
Soyez cohérent !
A +
bonjour,
mais j'ai executé la commande dos dans le code t_sql à l'aide ce la commnde xp_cmdshellCitation:
Normal, vous indiquez que vous allez utiliser du code Transact SQL et vous lancez une commande OS !
Soyez cohérent !
et parsuite c'est logic d'utiliser
j'ai executé mon job de cette façon:Citation:
@subsystem = N'TSQL',
@command = N'q_cbs_p_testThin',
-creer procedure q_cbs_p_testThin
-EXEC sp_add_job
-EXEC sp_add_jobstep
-EXEC sp_add_jobschedule
-sp_add_jobserver
-sp_start_job
mais j'ai aucun résultat malgré que si j'execute la procedure sans job ...j'aurai mon resultat.
voici mon code :
Code:
1
2
3
4
5
6
7
8 alter procedure q_cbs_p_testThin as begin declare @cmd varchar(500) set @cmd = 'COPY C:\abcde.sql C:\haykel '; Exec master.dbo.xp_cmdshell @cmd end
Merci d'avance..c trés urgent..je me suis bloquéCode:
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
29
30
31
32 use msdb EXEC sp_add_job @job_name = N'myTest', @enabled = 1, @description = 'myTest', @owner_login_name = N'sa', @notify_level_eventlog = 2 EXEC sp_add_jobstep @job_name = N'myTest', @step_name = N'Activer copie', @step_id=1, @subsystem = N'TSQL', @command = N'q_cbs_p_testThin', @retry_attempts = 5, @retry_interval = 1, @on_success_action = 2, @on_fail_action= 2 EXEC sp_add_jobschedule @job_name = 'myTest', @name = 'myTest', @freq_type = 4, -- daily @freq_interval = 1, @active_start_date = 20081225, @active_start_time = 100800, @freq_subday_type=4, @freq_subday_interval=1 EXEC sp_add_jobserver @job_name = 'myTest', @server_name = N'standard\base_instance' EXEC sp_start_job @job_name = 'myTest'
serait mieux !Code:SET @cmd = 'COPY "C:\abcde.sql" "C:\haykel\"';
A +
bonjour,
quand j'execute la requette :
jobtient comme résultat:Code:
1
2
3
4
5
6
7 SELECT next_run_date,next_run_time FROM dbo.sysjobs INNER JOIN dbo.sysjobschedules ON dbo.sysjobs.job_id = dbo.sysjobschedules.job_id WHERE name = 'myTest3'
next_run_date = 0 et next_run_time = 0
malgré que j 'ai fait
j'ai pas compris de kel zero il parle..si minuit ...alors ma date ou est elle rejettée....Code:
1
2
3 @active_start_date = 20081225, @active_start_time = 124800
merci d'avance
Bonjour,
-1-
Vous n'avez pas préciser la base de données dans laquelle vous avez créer votre procédure stockée. Si vous ne précisez pas , par défaut il prend la base de données "master".
Modifier également le paramètre @on_success_action à 1 (La valeur 2 signifiant "sortir avec une erreur")
Est ce qu'avec ces modifs votre job fonctionne mieux ?Code:
1
2
3
4
5
6
7
8
9
10
11 EXEC sp_add_jobstep @job_name = N'myTest', @step_name = N'Activer copie', @step_id=1, @subsystem = N'TSQL', @database_name = N'<nomBase>', @command = N'q_cbs_p_testThin', @retry_attempts = 5, @retry_interval = 1, @on_success_action = 1, @on_fail_action= 2
-2-
Essayez ceci :Citation:
quand j'execute la requette :
Code :
SELECT next_run_date,next_run_time
FROM
dbo.sysjobs
INNER JOIN dbo.sysjobschedules
ON dbo.sysjobs.job_id = dbo.sysjobschedules.job_id
WHERE name = 'myTest3'
jobtient comme résultat:
next_run_date = 0 et next_run_time = 0
Code:
1
2
3
4
5
6
7
8
9
10 USE msdb GO SELECT jobs.name, activity.last_executed_step_date, activity.next_scheduled_run_date FROM dbo.sysjobs jobs INNER JOIN dbo.sysjobactivity activity ON jobs.job_id = activity.job_id
Bonjour à tous,
Merci beaucoup MikeDavem.....il faut preciser le nom de la base...le problème est résolu.