Partager via


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.

Icône Lien de rubriqueConventions 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 la valeur de 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 la valeur de 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ément 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. L'argument 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 (succès) 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

Requiert l'appartenance au rôle de base de données fixe dc_admin ou dc_operator (avec l'autorisation EXECUTE) pour exécuter cette procédure. 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. Afin de consulter les paramètres actuels pour cet élément, interrogez la colonne de paramètres 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