sql server 2000 Pb d'exécution de procédure archivage
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:
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