Condividi tramite


sp_syscollector_create_collection_item (Transact-SQL)

Si applica a: SQL Server

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.

Convenzioni relative alla sintassi Transact-SQL

Sintassi

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

Argomenti

[ @collection_set_id = ] collection_set_id

Identificatore locale univoco per il set di raccolta. @collection_set_id è int, senza impostazione predefinita.

[ @collector_type_uid = ] 'collector_type_uid'

GUID che identifica il tipo di agente di raccolta da utilizzare per questo elemento. @collector_type_uid è uniqueidentifier, senza impostazione predefinita. Per un elenco dei tipi di agente di raccolta, eseguire una query sulla syscollector_collector_types vista di sistema.

[ @name = ] N'name'

Nome dell'elemento della raccolta. @name è 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 syscollector_collection_items visualizzazione di sistema.

[ @frequency = ] frequenza

Usato per specificare (in secondi) la frequenza con cui l'elemento della raccolta raccoglie i dati. @frequency è int, con il valore predefinito 5. Il valore minimo che è possibile specificare è 5 secondi.

Se il set di raccolta è impostato sulla modalità non memorizzata nella cache, la frequenza viene ignorata, perché questa modalità fa sì che la raccolta dati e il caricamento vengano eseguiti nella pianificazione specificata per il set di raccolta. Per visualizzare la modalità raccolta del set di raccolta, eseguire una query sulla vista di sistema syscollector_collection_sets .

[ @parameters = ] N'parameters'

Parametri di input per il tipo agente di raccolta. @parameters è xml, con il valore predefinito NULL. Lo schema @parameters deve corrispondere allo schema dei parametri del tipo di agente di raccolta.

[ @collection_item_id = ] collection_item_id OUTPUT

Identificatore univoco che identifica l'elemento del set di raccolta. @collection_item_id è un parametro OUTPUT di tipo int.

Valori del codice restituito

0 (esito positivo) o 1 (errore).

Osservazioni:

sp_syscollector_create_collection_item deve essere eseguito nel contesto del msdb database di sistema.

Il set di raccolta al quale viene aggiunto l'elemento deve essere arrestato prima della creazione dell'elemento della raccolta. Gli elementi della raccolta non possono essere aggiunti 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.

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 T-SQL query collector item',
    @frequency = 6000,
    @parameters = @params,
    @collection_item_id = @collection_item_id OUTPUT;