sp_syscollector_update_collection_item (Transact-SQL)
Permet de modifier les propriétés d'un élément de collecte défini par l'utilisateur ou de le renommer.
Conventions de la syntaxe Transact-SQL
Syntaxe
sp_syscollector_update_collection_item
[ [ @collection_item_id = ] collection_item_id ]
, [ [ @name = ] 'name' ]
, [ [ @new_name = ] 'new_name' ]
, [ [ @frequency = ] frequency ]
, [ [ @parameters = ] 'parameters' ]
Arguments
[ @collection\_item\_id = ] collection_item_id
Identificateur unique qui identifie l'élément de collecte. collection_item_id est de type int, avec NULL comme valeur par défaut. collection_item_id doit avoir une valeur si name est NULL.[ @name = ] 'name'
Nom de l'élément de collecte. name est de type sysname, avec NULL comme valeur par défaut. name doit avoir une valeur si collection_item_id est NULL.[ @new\_name = ] 'new_name'
Nouveau nom pour l'élément de collecte. new_name est de type sysname, et s'il est utilisé, ne peut pas être une chaîne vide.new_name doit être unique. Pour obtenir une liste de noms d'éléments de collecte actuels, interrogez la vue système syscollector_collection_items.
[ @frequency = ] frequency
Fréquence (en secondes) de la collecte de données par cet élément de collecte. frequency est de type int, avec 5 comme valeur par défaut (valeur minimale pouvant être spécifiée).[ @parameters = ] 'parameters'
Paramètres d'entrée pour l'élément de collecte. parameters est de type xml, avec NULL comme valeur par défaut. Le schéma parameters doit correspondre au schéma des paramètres du type de collecteur.
Valeurs des codes de retour
0 (réussite) ou 1 (échec)
Notes
Si le jeu d'éléments de collecte est défini en mode non mis en cache, la modification de la fréquence est ignorée car ce mode provoque l'exécution de la collecte et du téléchargement des données selon la planification spécifiée pour le jeu d'éléments de collecte. Pour afficher l'état du jeu d'éléments de collecte, exécutez la requête suivante. Remplacez <collection_item_id> par l'ID de l'élément de collecte à mettre à jour.
USE msdb;
GO
SELECT cs.collection_set_id, collection_set_uid, cs.name
,'is running' = CASE WHEN is_running = 0 THEN 'No' ELSE 'Yes' END
,'cache mode' = CASE WHEN collection_mode = 0 THEN 'Cached mode' ELSE 'Non-cached mode' END
FROM syscollector_collection_sets AS cs
JOIN syscollector_collection_items AS ci
ON ci.collection_set_id = cs.collection_set_id
WHERE collection_item_id = <collection_item_id>;
Autorisations
L'exécution de cette procédure requiert l'appartenance au rôle de base de données fixe dc_admin ou dc_operator (avec l'autorisation EXECUTE). Même si dc_operator peut exécuter cette procédure stockée, les membres de ce rôle sont limités en ce qui concerne les propriétés qu'ils peuvent modifier. Les propriétés suivantes peuvent être modifiées uniquement par dc_admin :
@new\_name
@parameters
Exemples
Les exemples suivants sont basés sur l'élément de collecte créé dans l'exemple défini dans sp_syscollector_create_collection_item (Transact-SQL).
A.Modification de la fréquence de collecte
L'exemple suivant modifie la fréquence de collecte pour l'élément de collecte spécifié.
USE msdb;
GO
EXEC sp_syscollector_update_collection_item
@name = N'My custom TSQL query collector item',
@frequency = 3000;
GO
B.Modification de nom d'un élément de collecte
L'exemple suivant renomme un élément de collecte.
USE msdb;
GO
EXEC sp_syscollector_update_collection_item
@name = N'My custom TSQL query collector item',
@new_name = N'My modified TSQL item';
GO
C.Modification des paramètres d'un élément de collecte
L'exemple suivant modifie les paramètres associés à l'élément de collecte. L'instruction définie dans l'attribut <Value> est modifiée et l'attribut UseSystemDatabases est défini sur False. Pour consulter les paramètres actuels de cet élément, interrogez la colonne parameters dans la vue système syscollector_collection_items. Il se peut que vous deviez modifier la valeur pour @collection\_item\_id.
USE msdb;
GO
EXEC sp_syscollector_update_collection_item
@collection_item_id = 9,
@parameters = '
<ns:TSQLQueryCollector xmlns:ns="DataCollectorType">
<Query>
<Value>SELECT * FROM sys.dm_db_index_usage_stats</Value>
<OutputTable>MyOutputTable</OutputTable>
</Query>
<Databases>
<Database> UseSystemDatabases = "false"
UseUserDatabases = "true"</Database>
</Databases>
</ns:TSQLQueryCollector>';
GO
Voir aussi
Référence
Procédures stockées système (Transact-SQL)
sp_syscollector_create_collection_item (Transact-SQL)
syscollector_collection_items (Transact-SQL)