Bonjour j'ai deux soucis avec une procédure stockée dont j'ai hérité
Je me permet de prévenir que je ne suis pas dev donc les questions que je vais poser ont peut-être des réponses évidentes

La procédure stockée ressemble à ceci :

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
begin procedure XXX @id varchar(50)
as 
begin
insert into table_de_log (datemaj) values (@id)
begin try
begin tran
 
truncate T1
truncate T2
truncate ...
... T20
 
insert into T1 select * from TT1
insert into T2 select * from TT2
insert into ...
... from TT20
 
commit tran
update table_de_log  set isactive=0,Status=0 where datemaj=@id
end try
begin catch
update table_de_log set isactive=0,errmsg=convert(vachar(50),error_number())+'-'+convert(varchar(5),error_line())+'-'+error_message() where datemaj=@id
end catch;
end;
Mon premier pb : lors de la phase de tests nous avons simulé différentes erreurs et avons ajouté un insert sur une table inexistante : si la table n'existe pas la procédure se stop immédiatement, j'aimerais donc trouver un moyen de finir la procédure stockée quoiqu'il arrive et de voir ensuite la ou les erreurs

Second problème : par moment la procédure plante l'instance de BDD pourant le nombre de lignes traitées au total est des plus raisonnable, est-il possible et intelligent (si c'est possible) d'ajouter des commit après chaque insert ?