Salut tout le monde

Je viens de créer un curseur qui devrait supprimer tous les index de plusieurs tables.

j'ai systématiquement une erreur, il me dit qu'une variable n'est pas déclarée.
Cette erreur intervient quand je veux faire le DROP INDEX, alors que si je remplace DROP INDEX par PRINT je n'ai pas l'erreur.

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
 
DECLARE @nomTab varchar(50)
DECLARE @nomIndex varchar(100)
 
DECLARE dropIndex CURSOR 
FOR   
	select DISTINCT sysindexes.name, sysObjects.name
	FROM sysindexes 
	INNER JOIN sysobjects ON sysObjects.id=sysindexes.id
	INNER JOIN syscolumns ON syscolumns.id=sysobjects.id
	WHERE (sysObjects.name LIKE 'C\_%' ESCAPE '\' OR sysObjects.name LIKE 'A\_%' ESCAPE '\' )
	AND indid >=1 
OPEN dropIndex
 
FETCH dropIndex INTO @nomIndex,@nomTab
WHILE @@FETCH_STATUS = 0
BEGIN
   DROP INDEX @nomTab+'.'+@nomIndex
--PRINT @nomTab+'.'+@nomIndex
   FETCH NEXT FROM dropIndex INTO @nomIndex,@nomTab
END
 
CLOSE dropIndex
DEALLOCATE dropIndex
Version SQL SERVER 2000

Si quelqu'un a une idée

Merci par avance