Partager via


sp_syscollector_create_collection_item (Transact-SQL)

Crée un élément de collecte dans un jeu d'éléments de collecte définis par l'utilisateur. Un élément de collecte définit les données à collecter et la fréquence de la collecte.

Icône Lien de rubriqueConventions de la syntaxe Transact-SQL

Syntaxe

sp_syscollector_create_collection_item 
      [ @collection_set_id = ] collection_set_id 
        , [ @collector_type_uid = ] 'collector_type_uid'
        , [ @name = ] 'name' 
        , [ [ @frequency = ] frequency ]
        , [ @parameters = ] 'parameters'
        , [ @collection_item_id = ] collection_item_id OUTPUT

Arguments

  • [ @collection_set_id = ] collection_set_id
    Identificateur local unique pour le jeu d'éléments de collecte. collection_set_id est de type int.

  • [ @collector_type_uid = ] 'collector_type_uid'
    GUID qui identifie le type de collecteur à utiliser pour cet élément. collector_type_uid est de type uniqueidentifier, sans valeur par défaut. Pour obtenir une liste de types de collecteurs, interrogez la vue système syscollector_collector_types.

  • [ @name = ] 'name'
    Nom de l'élément de collecte. name est de type sysname et ne peut pas être une chaîne vide ni avoir la valeur NULL.

    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
    Permet de spécifier (en secondes) la fréquence de collecte des données par cet élément de collecte. L'argument frequency est de type int, avec 5 comme valeur par défaut. La valeur minimale pouvant être spécifiée est de 5 secondes.

    Si le jeu d'éléments de collecte est défini en mode non mis en cache, 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 consulter le mode de collecte du jeu d'éléments de collecte, interrogez la vue système syscollector_collection_sets.

  • [ @parameters = ] 'parameters'
    Paramètres d'entrée pour le type de collecteur. 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.

  • [ @collection_item_id = ] collection_item_id
    Identificateur unique qui identifie l'élément du jeu d'éléments de collecte. collection_item_id est de type int et a pour valeur OUTPUT.

Valeurs des codes de retour

0 (succès) ou 1 (échec)

Notes

sp_syscollector_create_collection_item doit être exécuté dans le contexte de la base de données système msdb.

Le jeu d'éléments de collecte auquel l'élément de collecte est ajouté doit être arrêté avant que ce dernier ne soit créé. Il est impossible d'ajouter des éléments de collecte à des jeux d'éléments de collecte système.

Autorisations

L'exécution de cette procédure requiert l'appartenance au rôle de base de données fixe dc_admin (avec l'autorisation EXECUTE).

Exemples

L'exemple suivant crée un élément de collecte selon le type collecteur Generic T-SQL Query Collector Type et l'ajoute au jeu d'éléments de collecte appelé Simple collection set test 2. Pour créer le jeu d'éléments de collecte spécifié, exécutez l'exemple B dans sp_syscollector_create_collection_set (Transact-SQL).

USE msdb;
GO
DECLARE @collection_item_id int;
DECLARE @collection_set_id int = (SELECT collection_set_id 
                                  FROM syscollector_collection_sets
                                  WHERE name = N'Simple collection set test 2');
DECLARE @collector_type_uid uniqueidentifier = 
    (SELECT collector_type_uid
     FROM syscollector_collector_types
     WHERE name = N'Generic T-SQL Query Collector Type');
DECLARE @params xml = 
    CONVERT(xml, N'<ns:TSQLQueryCollector xmlns:ns="DataCollectorType">
            <Query>
                <Value>SELECT * FROM sys.objects</Value>
                <OutputTable>MyOutputTable</OutputTable>
            </Query>
            <Databases> 
                <Database> UseSystemDatabases = "true" 
                           UseUserDatabases = "true"
                </Database>
            </Databases>
         </ns:TSQLQueryCollector>');

EXEC sp_syscollector_create_collection_item
    @collection_set_id = @collection_set_id,
    @collector_type_uid = @collector_type_uid,
    @name = 'My custom TSQL query collector item',
    @frequency = 6000,
    @parameters = @params,
    @collection_item_id = @collection_item_id OUTPUT;