sp_syscollector_update_collection_item (Transact-SQL)
Aplica-se: SQL Server
Usado para modificar as propriedades de um item de coleta definido pelo usuário ou renomear um desses itens.
Convenções de sintaxe de Transact-SQL
Sintaxe
sp_syscollector_update_collection_item
[ [ @collection_item_id = ] collection_item_id ]
[ , [ @name = ] N'name' ]
[ , [ @new_name = ] N'new_name' ]
[ , [ @frequency = ] frequency ]
[ , [ @parameters = ] N'parameters' ]
[ ; ]
Argumentos
@collection_item_id [ = ] collection_item_id
O identificador exclusivo que identifica o item de coleção. @collection_item_id é int, com um padrão de NULL
. @collection_item_id deve ter um valor se @name for NULL
.
[ @name = ] N'name'
O nome do item de coleta. @name é sysname, com um padrão de NULL
. @name deve ter um valor se @collection_item_id for NULL
.
@new_name [ = ] N'new_name'
O novo nome do item de coleção. @new_name é sysname, com um padrão de NULL
, e se usado, não pode ser uma string vazia.
@new_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
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 [ = ] N'parâmetros'
Os parâmetros de entrada para o item da coleta. @parameters é xml, com um padrão de uma cadeia de caracteres vazia. O esquema @parameters deve corresponder ao esquema de parâmetros do tipo de coletor.
Valores do código de retorno
0
(sucesso) 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
INNER JOIN syscollector_collection_items AS ci
ON ci.collection_set_id = cs.collection_set_id
WHERE collection_item_id = < collection_item_id >;
GO
Permissões
Requer associação na função de banco de dados fixa dc_admin ou dc_operator (com permissão EXECUTE) para executar este procedimento. Embora dc_operator possa executar esse procedimento armazenado, os membros dessa função são limitados nas propriedades que podem alterar. As seguintes propriedades só podem ser alteradas por dc_admin:
- @new_name
- @parameters
Exemplos
Os exemplos a seguir são baseados no item de coleção criado no exemplo definido em sp_syscollector_create_collection_item.
R. Alterar 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 T-SQL query collector item',
@frequency = 3000;
GO
B. Renomear um item de coleção
O exemplo a seguir renomeia um item de coleta.
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. Alterar os parâmetros de um item de coleção
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 falso. Para exibir os parâmetros atuais desse item, consulte a coluna de parâmetros na exibição do syscollector_collection_items
sistema. Talvez seja necessário modificar o valor de @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