Bonjour à tous,

En vue de maintenir les index de certaines de mes tables de la base de données, j'ai écris la procédure suivante que j'exécute à travers un JOB:

1°) Le fait que j'obtiens une erreur au niveau de l'exécution de mon Job (Failed). Or de toute apparence, le code me parait correct.

2°) Je souhaiterai avoir votre aide pour détecter ce qui ne va pas.

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
CREATE PROCEDURE MAINTINDEX
 
/* Cette procédure permet de reconstruire les index des tables */
AS
SET NOCOUNT ON  -- eliminates the sending of number of affected row
		-- messages to the client for each statement
DECLARE @TABLE_NAME nvarchar(20)
 
DECLARE @fillfactor INT 
 
SET @fillfactor = 90 
 
DECLARE DefragIndexcursor 
CURSOR FOR 
 
-- Récupération des noms des tables (2 tables) sur les quelles je souhaiterai reconstruire les index
 
SELECT    name
FROM         sysobjects
WHERE     (xtype = 'U') AND (uid = 5)
 
OPEN DefragIndexcursor
FETCH NEXT FROM DefragIndexcursor INTO @TABLE_NAME
WHILE @@FETCH_STATUS = 0
      BEGIN
 
	DBCC DBREINDEX(@TABLE_NAME,' ',@fillfactor)  
 
	FETCH NEXT 
	FROM DefragIndexcursor INTO @TABLE_NAME
      END
CLOSE DefragIndexcursor
DEALLOCATE DefragIndexcursor
 
GO
Voici le message obtenu lors du lancement du JOB:
The job failed. The Job was invoked by User PARV07304594\admmoe. The last step to run was step 1 (MaintIndex).

Merci d'avance pour vos retours.