Bonjour, je voudrais savoir s'il est possible de creer un script SQL pour faire des insert en base toutes les 15mn.
Merci par avance.
Version imprimable
Bonjour, je voudrais savoir s'il est possible de creer un script SQL pour faire des insert en base toutes les 15mn.
Merci par avance.
Oui et le planifier via l'agent SQL.
A +
Merci de ta reponse, mais ca ne me dit pas comment faire??
Pourrais tu m'expliquer plus en detail ta reponse stp?
Merci par avance
Fais ton script d'insert puis va dans l'agent SQL et planifie son éxécution toutes les 15 minutes. (Comme une tâche planifiée de Windows)
Merci mais le script, je le fait comment??
C'est la mon problème majeur! le planifier c'est la 2eme etape.
Merci par avance
Ca se fait tout seul via SQL Enterprise Manager, au niveau de l'agent, en ajoutant un job et en le schédulant.
Il générera qqch du genre :
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60 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'test') 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 ''test'' 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'test' SELECT @JobID = NULL END BEGIN -- Add the job EXECUTE @ReturnCode = msdb.dbo.sp_add_job @job_id = @JobID OUTPUT , @job_name = N'test', @owner_login_name = N'sa', @description = N'No description available.', @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 ------------------------------------------------- -- Spécification de votre commande d'insert ------------------------------------------------- EXECUTE @ReturnCode = msdb.dbo.sp_add_jobstep @job_id = @JobID, @step_id = 1, @step_name = N'Script', @command = N'INSERT INTO VotreTable VALUES (...)', @database_name = N'VotreBASE', @server = N'', @database_user_name = N'', @subsystem = N'TSQL', @cmdexec_success_code = 0, @flags = 0, @retry_attempts = 0, @retry_interval = 1, @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 ------------------------------------------------- -- Ajout du job schédul chaque 15 minutes ------------------------------------------------- EXECUTE @ReturnCode = msdb.dbo.sp_add_jobschedule @job_id = @JobID, @name = N'Requete chaque 15 min', @enabled = 1, @freq_type = 8, @active_start_date = 20051214, @active_start_time = 0, @freq_interval = 1, @freq_subday_type = 4, @freq_subday_interval = 15, @freq_relative_interval = 0, @freq_recurrence_factor = 1, @active_end_date = 99991231, @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:
Desolé d'etre un peu lent, mais qu'est ce qui se fera seul? :oops:
Le script qui va executé mes requetes Insert OU la commende d'appler ce script toutes les 15mn??
Merci par avance de vos reponses.
Ce script se joue une fois.
Il demande à l'agent d'éxécuter l'insert toutes les 15 minutes.
Ha ok
Alors :1) Ou est ce qu eje dois mettre mes insert ???
2) Ou je le crée se script?
Merci
1)
-------------------------------------------------
-- Spécification de votre commande d'insert
-------------------------------------------------
EXECUTE @ReturnCode = msdb.dbo.sp_add_jobstep @job_id = @JobID, @step_id = 1, @step_name = N'Script', @command = N'INSERT INTO VotreTable VALUES (...)',
2) Dans Query Analyzer si vous voulez le faire à la main... mais je vous conseille vivement SQL Server Enterprise (sous Managment/Agent/Job)