[Server SQL 2000] Erreur sur une "stored procedure"
Bonjour,
j'ai une erreur sur un de mes scripts et je ne comprend pas pourquoi... :?
*ce script fonctionne trés bien sur une autre machine, avec une base qui à la même structure mais pas le même contenu*
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
| CREATE PROCEDURE SP_REC_PURGE
@p_nb_jour int
AS
-- Declaration and initialisation de la variable de sauvegarde de @@Error.
DECLARE @ErrorSave INT
SET @ErrorSave = 0
-- Déclaration du status du curseur
DECLARE @Statuscursor INT
SET @Statuscursor = 0
DECLARE @li_nbre_of As Int
-- Déclaration des variables
DECLARE @Id_Rec AS varchar(10)
DECLARE @Vers_Rec AS int
-- Déclaration du curseur de la recherche des recettes
DECLARE search_rec CURSOR LOCAL FOR
Select ID_REC,
VERS_REC
From rec
Where ETAT_REC = 2
and DATE_MODIF <= getdate() - @p_nb_jour
-- Recherche des recettes
Open search_rec
Fetch next from search_rec Into @Id_Rec,@Vers_Rec
-- Tant que la liste des recettes n'est pas terminée
While @@Fetch_Status = 0
Begin
set set @li_nbre_of = 0
Begin transaction
set @li_nbre_of = (select count(*)
from ord_fab
where id_rec = @Id_Rec
and vers_rec = @Vers_Rec)
if (@li_nbre_of = 0)
Begin
delete rec where id_rec = @Id_Rec
and vers_rec = @Vers_Rec
set @ErrorSave = @@Error
If (@ErrorSave = 0)
Begin
Commit transaction
End
Else
Begin
Rollback transaction
End
End
-- Positionnement sur l'enregistrement suivant
Fetch next from search_rec Into @Id_Rec,@Vers_Rec
End
Close search_rec
Deallocate search_rec
GO |
mon job qui permet d'éxecuter cette procedure,
est donc en croix avec le message suivant :cry:
Citation:
The job failed. The Job was invoked by User ****. The las step to run was step 1 (PURGE)
si je demande des détails
Citation:
Executed as user: AUTORITE NT\SYSTEM.
Transaction count after EXECUTE indicates that a COMMIT or ROLLBACK TRANSACTION satetement is missing.
Previous count = 0, current count = 9.
[SQLSTATE 25000](Error 266)
Transaction count after EXECUTE indicates that a COMMIT or ROLLBACK TRANSACTION statement is missing.
Previous count = 0, current count = 9.
[SQLSTATE 25000](Error 266)
The step failed.
si je rajoute PRINT @@TRANCOUNT dans mon script
Citation:
Executed as user: AUTORITE NT\SYSTEM.
1 [SQLSTATE 01000](Message 0)
2 [SQLSTATE 01000](Message 0)
3 [SQLSTATE 01000](Message 0)
4 [SQLSTATE 01000](Message 0)
5 [SQLSTATE 01000](Message 0)
6 [SQLSTATE 01000](Message 0)
7 [SQLSTATE 01000](Message 0)
8 [SQLSTATE 01000](Message 0)
9 [SQLSTATE 01000](Message 0)
Transaction count after EXECUTE indicates that a COMMIT or ROLLBACK TRANSACTION satetement is missing.
Previous count = 0, current count = 9.
[SQLSTATE 25000](Error 266)
Transaction count after EXECUTE indicates that a COMMIT or ROLLBACK TRANSACTION statement is missing.
Previous count = 0, current count = 9.
[SQLSTATE 25000](Error 266)
The step failed.
rien de nouverau,
il me dit juste qu'il compte 9 fois mais je comprend pas ce qui le dérange avec le Previous count = 0, current count = 9 :(