Condividi tramite


sp_syscollector_update_collection_item (Transact-SQL)

Consente di rinominare un elemento della raccolta definito dall'utente o di modificarne le proprietà.

Icona di collegamento a un argomento Convenzioni della sintassi Transact-SQL

Sintassi

sp_syscollector_update_collection_item 
      [ [ @collection_item_id = ] collection_item_id ]
    , [ [ @name = ] 'name' ]
    , [ [ @new_name = ] 'new_name' ]
    , [ [ @frequency = ] frequency ]
    , [ [ @parameters = ] 'parameters' ]

Argomenti

  • [ @collection\_item\_id = ] collection_item_id
    Identificatore univoco che identifica l'elemento della raccolta. collection_item_id è int e il valore predefinito è NULL. collection_item_id deve disporre di un valore se name è NULL.

  • [ @name = ] 'name'
    Nome dell'elemento della raccolta. name è sysname e il valore predefinito è NULL. name deve disporre di un valore se collection_item_id è NULL.

  • [ @new\_name = ] 'new_name'
    Nuovo nome per l'elemento della raccolta. new_name è di tipo sysname e se utilizzato non può essere una stringa vuota.

    new_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
    Frequenza, espressa in secondi, con cui vengono raccolti i dati da questo elemento della raccolta. frequency è di tipo int e il valore predefinito è 5, ovvero il valore minimo che è possibile specificare.

  • [ @parameters = ] 'parameters'
    Parametri di input per l'elemento della 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.

Valori restituiti

0 (esito positivo) o 1 (esito negativo)

Osservazioni

Se il set di raccolta è impostato sulla modalità non in cache, la modifica della 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 di raccolta. Per visualizzare lo stato del set di raccolta, eseguire la query seguente. Sostituire <collection_item_id> con l'ID dell'elemento della raccolta da aggiornare.

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>;

Autorizzazioni

Per eseguire questa procedura, è richiesta l'appartenenza al ruolo predefinito del database dc_admin o dc_operator (con autorizzazione EXECUTE). Anche se il ruolo dc_operator dispone di autorizzazioni per eseguire questa stored procedure, i membri di questo ruolo possono modificare solo determinate proprietà. Le proprietà seguenti possono essere modificate solo da dc_admin:

  • @new\_name

  • @parameters

Esempi

Gli esempi seguenti sono basati sull'elemento della raccolta creato nell'esempio definito in sp_syscollector_create_collection_item (Transact-SQL).

A.Modifica della frequenza di raccolta

Nell'esempio seguente viene modificata la frequenza di raccolta per l'elemento della raccolta specificato.

USE msdb;
GO
EXEC sp_syscollector_update_collection_item 
@name = N'My custom TSQL query collector item',
@frequency = 3000;
GO

B.Ridenominazione di un elemento della raccolta

Nell'esempio seguente viene rinominato un elemento della raccolta.

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.Modifica dei parametri di un elemento della raccolta

Nell'esempio seguente vengono modificati i parametri associati all'elemento della raccolta. L'istruzione definita all'interno dell'attributo <Value> viene modificata e l'attributo UseSystemDatabases viene impostato su false. Per visualizzare i parametri correnti per questo elemento, eseguire una query sulla colonna parameters nella vista di sistema syscollector_collection_items. Potrebbe essere necessario modificare il valore per @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

Vedere anche

Riferimento

Stored procedure di sistema (Transact-SQL)

sp_syscollector_create_collection_item (Transact-SQL)

syscollector_collection_items (Transact-SQL)

Concetti

Raccolta dati