bonjour à tous,
Je suis débutante et je dois reconstruire tous les index de toutes les bases de données d'un serveur, qui ont un taux de fragmentation supérieur à 30%.
Je travaille sous sql server 2005.
Je parcours donc les bases de données, les tables et les index. Je récupère le nom de la base, de la table, de l'index, l'id object de l'index, l'id de l'index, l'id de la bdd et quand je veux récupérer le taux de fragmentation pour cet index avec la commande:
Celui-ci m'indique l'erreur suivante:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 SELECT @FRAG =avg_fragmentation_in_percent FROM sys.dm_db_index_physical_stats(@ID_BDD,@ID_OBJECT,@ID_INDEX,NULL,NULL ) print ('frag:') print @FRAG
Parameter 2 is incorrect for this statement.
Or le paramètre 2 correspond à @ID_OBJECT que j'ai défini en tant qu'int et qui a bien une valeur :
Peut-être me suis-je trompé dans la récupération de l'id object ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 /*récupération de object_id de l'index*/ SELECT @ID_OBJECT = i.object_id FROM sys.indexes i WHERE @NAME_INDEX = i.name print('id object:') print @ID_OBJECT
Merci d'avance pour votre réponse.
Partager