sp_syscollector_update_collection_item (Transact-SQL)

Si applica a:SQL Server

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

Convenzioni relative alla sintassi Transact-SQL

Sintassi

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

Argomenti

[ @collection_item_id = ] collection_item_id

Identificatore univoco che identifica l'elemento della raccolta. @collection_item_id è int, con il valore predefinito NULL. @collection_item_id deve avere un valore se @name è NULL.

[ @name = ] N'name'

Nome dell'elemento della raccolta. @name è sysname, con un valore predefinito .NULL @name deve avere un valore se @collection_item_id è NULL.

[ @new_name = ] N'new_name'

Nuovo nome per l'elemento della raccolta. @new_name è sysname, con un valore predefinito NULL, e se usato, 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 syscollector_collection_items visualizzazione di sistema.

[ @frequency = ] frequenza

Frequenza (in secondi) che i dati vengono raccolti dall'elemento della raccolta. @frequency è int, con un valore predefinito , 5il valore minimo che può essere specificato.

[ @parameters = ] N'parameters'

Parametri di input per l'elemento della raccolta. @parameters è xml, con un valore predefinito di una stringa vuota. Lo schema @parameters deve corrispondere allo schema dei parametri del tipo di agente di raccolta.

Valori del codice restituito

0 (esito positivo) o 1 (errore).

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
INNER JOIN syscollector_collection_items AS ci
    ON ci.collection_set_id = cs.collection_set_id
WHERE collection_item_id = < collection_item_id >;
GO

Autorizzazioni

Per eseguire questa procedura, è richiesta l'appartenenza al ruolo predefinito del database dc_admin o dc_operator (con autorizzazione EXECUTE). Sebbene dc_operator possibile eseguire questa stored procedure, i membri di questo ruolo sono limitati nelle proprietà che possono modificare. Le proprietà seguenti possono essere modificate solo da dc_admin:

  • @new_name
  • @parameters

Esempi

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

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

B. Rinominare 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 T-SQL query collector item',
    @new_name = N'My modified T-SQL item';
GO

C. Modificare i 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 dei parametri nella syscollector_collection_items visualizzazione di sistema. 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