Bonjour,

j'utilise actuellement un curseur qui va modifier une tables, (tables contenant les abonnements à un états de reporting) et ensuite lance un job le problème c'est qu'il faut que je test si le job exécuté sous l'agent sql est encore en cour d'utilisations car quand mon curseur va passer sur la ligne suivant il va modifier la table des abonnements.
le but de cette requête est d'éviter de se taper la création des job a la main et les test si oui ou non le vendeur doit recevoir un mail le jour même.
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
29
30
31
32
33
 
declare parcours_vendeur cursor for
		Select Societe,Vendeur, NomPrenom, Email from T_Vendeur
declare @Societe varchar(10)
declare @Vendeur varchar(10)
declare @NomPrenom varchar(32)
declare @Email varchar(250)
 
 
open parcours_vendeur
fetch Parcours_vendeur into @Societe,@vendeur,@NomPrenom,@Email
 
WHILE @@FETCH_STATUS = 0
begin
	--Test pour savoir si des différences sont associés au vendeur
	if @Vendeur in (select 
						 vendeur 
				    from t_client as C, t_difquantitecommandeefacturee as D
				    where C.Client=D.Client and D.DateAnomalie=datediff(day,0,getdate()))
		begin
			-- mise à jour des champs pour prendre en compte les paramètre du vendeur en cours
			Update Reportserver.dbo.Subscriptions
			SET ExtensionSettings = '<ParameterValues><ParameterValue><Name>TO</Name><Value>'+@Email+'</Value></ParameterValue><ParameterValue><Name>IncludeReport</Name><Value>True</Value></ParameterValue><ParameterValue><Name>RenderFormat</Name><Value>PDF</Value></ParameterValue><ParameterValue><Name>Subject</Name><Value>Le rapport @ReportName a été exécuté à @ExecutionTime</Value></ParameterValue><ParameterValue><Name>IncludeLink</Name><Value>True</Value></ParameterValue><ParameterValue><Name>Priority</Name><Value>NORMAL</Value></ParameterValue></ParameterValues>',
				Parameters = '<ParameterValues><ParameterValue><Name>vendeur</Name><Value>'+@Vendeur+'</Value></ParameterValue></ParameterValues>'
			WHERE Report_OID = 'ebcc60eb-d37e-3569-b06b-83f81689604a'
                            --exécution du job envoyant le mail au vendeur
                           Exec msdb.dbo.sp_start_job N' myjob '
		End
	fetch Parcours_vendeur into @Societe,@vendeur,@NomPrenom,@Email
End
 
Close parcours_vendeur
deallocate parcours_vendeur
la question que je me pose est donc la suivant :
Existe il une procédure stockée qui nous renvoie l'information sur l'état du job ?
ou encore
Est il possible de retrouver dans une table le fait que le job est en cours ou bien est terminé?

et si OUI laquelle.

cordialement.