Partilhar via


sp_syscollector_create_collection_item (Transact-SQL)

Aplica-se a: SQL Server

Cria um item de coleta em um conjunto de coleta definido pelo usuário. Um item de coleta define os dados a serem coletados e a frequência com a qual esses dados são coletados.

Convenções de sintaxe de Transact-SQL

Sintaxe

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

Argumentos

@collection_set_id [ = ] collection_set_id

O identificador local exclusivo para o conjunto de coleta. @collection_set_id é int, sem padrão.

@collector_type_uid [ = ] 'collector_type_uid'

O GUID que identifica o tipo de coletor a ser usado para este item. @collector_type_uid é uniqueidentifier, sem padrão. Para obter uma lista de tipos de coletores, consulte a visualização do syscollector_collector_types sistema.

@name [ = ] N'nome'

O nome do item de coleta. @name é sysname e não pode ser uma string vazia ou NULL.

@name deve ser único. Para obter uma lista de nomes de itens de coleção atuais, consulte a exibição do syscollector_collection_items sistema.

@frequency [ = ] frequência

Usado para especificar (em segundos) a frequência com que esse item de coleta coleta dados. @frequency é int, com um padrão de 5. O valor mínimo que pode ser especificado é de 5 segundos.

Se o conjunto de coleta for definido como modo não armazenado em cache, a frequência será ignorada, pois esse modo faz com que a coleta de dados e o upload ocorram no agendamento especificado para o conjunto de coleta. Para exibir o modo de coleta do conjunto de coleta, consulte a exibição do sistema syscollector_collection_sets (Transact-SQL ).

@parameters [ = ] N'parâmetros'

Os parâmetros de entrada do tipo de coletor. @parameters é xml, com um padrão de NULL. O esquema @parameters deve corresponder ao esquema de parâmetros do tipo de coletor.

@collection_item_id [ = ] collection_item_id SAÍDA

O identificador exclusivo que identifica o item do conjunto de coleta. @collection_item_id é um parâmetro OUTPUT do tipo int.

Valores do código de retorno

0 (sucesso) ou 1 (falha).

Comentários

sp_syscollector_create_collection_item deve ser executado no contexto do banco de dados do msdb sistema.

O conjunto de coleta para o qual o item de coleta está sendo adicionado deve ser interrompido antes da criação do item de coleta. Os itens de coleção não podem ser adicionados aos conjuntos de coleta do sistema.

Permissões

Requer associação na função de banco de dados fixa dc_admin (com permissão EXECUTE) para executar este procedimento.

Exemplos

O exemplo a seguir cria um item de coleta baseado no tipo de coleta Generic T-SQL Query Collector Type e o adiciona ao conjunto de coleta denominado Simple collection set test 2. Para criar o conjunto de coleta especificado, execute o exemplo B no 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 T-SQL query collector item',
    @frequency = 6000,
    @parameters = @params,
    @collection_item_id = @collection_item_id OUTPUT;