parametre incorrect sys.dm_db_index_physical_stats
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:
Code:
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 |
Celui-ci m'indique l'erreur suivante:
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 :
Code:
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 |
Peut-être me suis-je trompé dans la récupération de l'id object ?
Merci d'avance pour votre réponse.