sp_syscollector_update_collection_item (Transact-SQL)

S’applique à :SQL Server

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 = ] N'name' ]
    [ , [ @new_name = ] N'new_name' ]
    [ , [ @frequency = ] frequency ]
    [ , [ @parameters = ] N'parameters' ]
[ ; ]

Arguments

[ @collection_item_id = ] collection_item_id

Identificateur unique qui identifie l’élément de collection. @collection_item_id est int, avec la valeur par défaut NULL. @collection_item_id doit avoir une valeur si @name est NULL.

[ @name = ] N’name'

Nom de l’élément de collection. @name est sysname, avec la valeur par défaut NULL. @name doit avoir une valeur si @collection_item_id est NULL.

[ @new_name = ] N’new_name'

Nouveau nom de l’élément de collection. @new_name est sysname, avec une valeur par défaut NULL, et si elle est utilisée, ne peut pas être une chaîne vide.

@new_name doit être unique. Pour obtenir la liste des noms d’éléments de collection actuels, interrogez l’affichage syscollector_collection_items système.

[ @frequency = ] fréquence

Fréquence (en secondes) que les données sont collectées par cet élément de collection. @frequency est int, avec une valeur par défaut 5, la valeur minimale qui peut être spécifiée.

[ @parameters = ] N’parameters'

Paramètres d'entrée pour l'élément de collecte. @parameters est xml, avec une valeur par défaut d’une chaîne vide. Le schéma @parameters doit correspondre au schéma de paramètres du type 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
INNER JOIN syscollector_collection_items AS ci
    ON ci.collection_set_id = cs.collection_set_id
WHERE collection_item_id = < collection_item_id >;
GO

Autorisations

Nécessite l’appartenance au dc_admin ou au rôle de base de données fixe dc_operator (avec l’autorisation EXECUTE) pour exécuter cette procédure. Même si dc_operator pouvez exécuter cette procédure stockée, les membres de ce rôle sont limités dans les propriétés qu’ils peuvent modifier. Les propriétés suivantes ne peuvent être modifiées que par dc_admin :

  • @new_name
  • @parameters

Exemples

Les exemples suivants sont basés sur l’élément de collection créé dans l’exemple défini dans sp_syscollector_create_collection_item (Transact-SQL).

A. Modifier 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 T-SQL query collector item',
    @frequency = 3000;
GO

B. Renommer un élément de collection

L'exemple suivant renomme un élément de collecte.

USE msdb;
GO

EXEC sp_syscollector_update_collection_item
    @name = N'My custom T-SQL query collector item',
    @new_name = N'My modified T-SQL item';
GO

C. Modifier les paramètres d’un élément de collection

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 afficher les paramètres actuels de cet élément, interrogez la colonne des paramètres dans la syscollector_collection_items vue système. Vous devrez peut-être modifier la valeur de @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