sp_syscollector_create_collection_item (Transact-SQL)

Crea un elemento della raccolta in un set di raccolta definito dall'utente. Un elemento della raccolta definisce i dati da raccogliere e la frequenza di raccolta.

Icona di collegamento a un argomentoConvenzioni della sintassi Transact-SQL

Sintassi

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

Argomenti

  • [ @collection_set_id = ] collection_set_id
    Identificatore univoco locale del set di raccolta. collection_set_id è di tipo int.

  • [ @collector_type_uid = ] 'collector_type_uid'
    GUID che identifica il tipo di agente di raccolta da utilizzare per questo elemento. collector_type_uid è di tipo uniqueidentifier e non prevede alcun valore predefinito. Per un elenco di tipi di agenti di raccolta, eseguire una query sulla vista di sistema syscollector_collector_types.

  • [ @name = ] 'name'
    Nome dell'elemento della raccolta. name è di tipo sysname e non può essere una stringa vuota o NULL.

    name deve essere univoco. Per un elenco dei nomi degli elementi della raccolta correnti, eseguire una query sulla vista di sistema syscollector_collection_items.

  • [ @frequency = ] frequency
    Utilizzato per specificare la frequenza di raccolta dei dati da parte di questo elemento della raccolta, espressa in secondi. frequency è di tipo int e il valore predefinito è 5. Il valore minimo che è possibile specificare è 5 secondi.

    Se il set di raccolta è impostato sulla modalità non in cache, la frequenza viene ignorata in quanto in questa modalità la raccolta e il caricamento dei dati vengono eseguiti in base alla pianificazione specificata per il set. Per visualizzare la modalità di raccolta del set di raccolta, eseguire una query sulla vista di sistema syscollector_collection_sets.

  • [ @parameters = ] 'parameters'
    Parametri di input per il tipo di agente di raccolta. parameters è di tipo xml e il valore predefinito è NULL. Lo schema parameters deve corrispondere allo schema dei parametri per il tipo di agente di raccolta.

  • [ @collection_item_id = ] collection_item_id
    Identificatore univoco che identifica l'elemento del set di raccolta. collection_item_id è di tipo int e ha OUTPUT.

Valori dei codici restituiti

0 (esito positivo) o 1 (esito negativo)

Osservazioni

È necessario eseguire sp_syscollector_create_collection_item nel contesto del database di sistema msdb.

Il set di raccolta al quale viene aggiunto l'elemento deve essere arrestato prima della creazione dell'elemento della raccolta. Non è possibile aggiungere elementi della raccolta ai set di raccolta di sistema.

Autorizzazioni

Per eseguire questa procedura, è richiesta l'appartenenza al ruolo predefinito del database dc_admin (con autorizzazione EXECUTE) .

Esempi

Nell'esempio seguente viene creato un elemento della raccolta basato sul tipo di raccolta Generic T-SQL Query Collector Type e successivamente tale elemento viene aggiunto al set di raccolta denominato Simple collection set test 2. Per creare il set di raccolta specificato, eseguire l'esempio B in 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;