Partilhar via


sp_syscollector_update_collection_item (Transact-SQL)

Usado para modificar as propriedades de um item de coleta definido pelo usuário ou renomear um desses itens.

Ícone de vínculo de tópico Convenções da sintaxe Transact-SQL

Sintaxe

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

Argumentos

  • [ @collection\_item\_id = ] collection_item_id
    É o identificador exclusivo que identifica o item de coleta. collection_item_id é int com o valor padrão de NULL. collection_item_id deverá ter um valor se name for NULL.

  • [ @name = ] 'name'
    É o nome do item de coleta. name é sysname com o valor padrão de NULL. name deverá ter um valor se collection_item_id for NULL.

  • [ @new\_name = ] 'new_name'
    É o novo nome do item da coleta. new_name é sysname e, se usado, não poderá ser uma cadeia de caracteres vazia.

    new_name deve ser exclusivo. Para obter uma lista dos nomes de itens de coleta atuais, consulte a exibição do sistema syscollector_collection_items.

  • [ @frequency = ] frequency
    É a frequência (em segundos) com que os dados são coletados por esse item de coleta. frequency é int, com um padrão de 5, o valor mínimo que pode ser especificado.

  • [ @parameters = ] 'parameters'
    Os parâmetros de entrada para o item da coleta. parameters é xml com um padrão de NULL. O esquema parameters deve corresponder ao esquema de parâmetros do tipo de coletor.

Valores de código de retorno

0 (êxito) ou 1 (falha)

Comentários

Se o conjunto de coleta estiver definido para o modo não armazenado em cache, a alteração da frequência será ignorada, pois esse modo faz com que a coleção e o carregamento dos dados ocorram conforme a agenda especificada para o conjunto de coleta. Para exibir o status do conjunto de coleta, execute a consulta a seguir. Substitua <collection_item_id> pela ID do item de coleta a ser atualizado.

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

Permissões

Requer associação na função de banco de dados fixa dc_admin ou dc_operator (com a permissão EXECUTE) para executar esse procedimento. Embora dc_operator possa executar esse procedimento armazenado, membros dessa função estão limitados nas propriedades que podem alterar. As propriedades a seguir podem ser alteradas apenas por meio de dc_admin:

  • @new\_name

  • @parameters

Exemplos

Os exemplos a seguir se baseiam no item de coleta criado no exemplo definido em sp_syscollector_create_collection_item (Transact-SQL).

A.Alterando a frequência de coleta

O exemplo a seguir altera a frequência de coleta do item de coleta especificado.

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

B.Renomeando um item de coleta

O exemplo a seguir renomeia um item de coleta.

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.Alterando os parâmetros de um item de coleta

O exemplo a seguir altera os parâmetros associados ao item de coleta. A instrução definida no atributo <Value> é alterada e o atributo UseSystemDatabases é definido como false. Para exibir os parâmetro atuais para este item, consulte a coluna parameters na exibição do sistema syscollector_collection_items. Talvez seja necessário modificar o valor para @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

Consulte também

Referência

Procedimentos armazenados do sistema (Transact-SQL)

sp_syscollector_create_collection_item (Transact-SQL)

syscollector_collection_items (Transact-SQL)

Conceitos

Coleta de dados