Bonjour tout le monde,
Cette procédure archive toutes les prospections (table prospections) datant de plus de 6 ans ainsi que toutes les actions (table praction) relatives à ces prospections . Je ne comprend pas pourquoi l’exécution ne se finalise pas au bout de 25 min (et plus).Pourtant niveau syntaxe la procédure semble correcte.
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
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
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80 CREATE PROC dbo.ArchiveDonnées ( @CutOffDate datetime = NULL ) AS BEGIN SET NOCOUNT ON IF @CutOffDate IS NULL BEGIN SET @CutOffDate = DATEADD (yyyy, -6, CURRENT_TIMESTAMP) END END BEGIN TRAN INSERT INTO Migration.dbo.migprospection SELECT * FROM recette_670.dbo.prospection WHERE datefin < @CutOffDate IF @@ERROR <> 0 BEGIN ROLLBACK TRAN RAISERROR ('une erreur est survenue lors de la copie des données vers Migration.dbo.migprospection', 16, 1) RETURN -1 END INSERT INTO Migration.dbo.migpraction SELECT * FROM recette_670.dbo.praction WHERE fk_prospect IN ( SELECT pk_prospect FROM dbo.prospection WHERE datefin < @CutOffDate ) IF @@ERROR <> 0 BEGIN ROLLBACK TRAN RAISERROR ('une erreur est survenue lors de la copie des données vers Migration.dbo.migpraction', 16, 1) RETURN -1 END DELETE dbo.praction WHERE fk_prospect IN ( SELECT pk_prospect FROM dbo.prospection WHERE datefin < @CutOffDate ) IF @@ERROR <> 0 BEGIN ROLLBACK TRAN RAISERROR ('une erreur est survenue lors de la copie des données vers recette_670.dbo.praction', 16, 1) RETURN -1 END DELETE dbo.prospection WHERE Datefin < @CutOffDate IF @@ERROR <> 0 BEGIN ROLLBACK TRAN RAISERROR ('une erreur est survenue lors de la copie des données vers recette_670.dbo.prospection', 16, 1) RETURN -1 END IF @@TRANCOUNT > 0 BEGIN COMMIT TRAN RETURN 0 ENd GO
Quelqu'un peut m'éclairer ?
MERCI
Partager