sp_syscollector_update_collection_item (Transact-SQL)
Se usa para modificar las propiedades de un elemento de recopilación definido por el usuario o para cambiar el nombre de un elemento de recopilación definido por el usuario.
Sintaxis
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
Es el identificador único que identifica al elemento de recopilación. collection_item_id es int y su valor predeterminado es NULL. collection_item_id debe tener un valor si name es NULL.[ @name = ] 'name'
Es el nombre del elemento de recopilación. name es sysname y su valor predeterminado es NULL. name debe tener un valor si collection_item_id es NULL.[ @new\_name = ] 'new_name'
Es el nuevo nombre de la recopilación. new_name es de tipo sysname y, si se utiliza, no puede ser una cadena vacía.new_name debe ser único. Para obtener una lista de los nombres de elementos de colección actuales, consulte la vista del sistema syscollector_collection_items.
[ @frequency = ] frequency
Es la frecuencia (en segundos) con que los datos son recopilados por este elemento de recopilación. frequency es int, con un valor predeterminado de 5, el valor mínimo que se puede especificar.[ @parameters = ] 'parameters'
Parámetros de entrada para el elemento de recopilación. parameters es xml y su valor predeterminado es NULL. El esquema parameters debe coincidir con el esquema de parámetros del tipo de recopilador.
Valores de código de retorno
0 (correcto) o 1 (error)
Notas
Si el conjunto de recopilación se establece en modo sin almacenamiento en caché, se omite el cambio de la frecuencia porque este modo hace que la recopilación de datos y la carga se produzcan en la programación especificada para el conjunto de recopilación. Para ver el estado del conjunto de recopilación, ejecute la consulta siguiente. Reemplace <collection_item_id> por el identificador del elemento de recopilación que se va a actualizar.
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>;
Permisos
Requiere la pertenencia a una función de base de datos fija dc_admin o dc_operator (con permiso EXECUTE) para ejecutar este procedimiento. Aunque dc_operator puede ejecutar este procedimiento almacenado, las propiedades que pueden cambiar los miembros de esta función son limitadas. Las propiedades siguientes solo puede cambiarlas dc_admin:
@new\_name
@parameters
Ejemplos
Los ejemplos siguientes se basan en el elemento de recopilación creado en el ejemplo definido en sp_syscollector_create_collection_item (Transact-SQL).
A. Cambiar la frecuencia de la recopilación
En el ejemplo siguiente se cambia la frecuencia de recopilación para el elemento de recopilación especificado.
USE msdb;
GO
EXEC sp_syscollector_update_collection_item
@name = N'My custom TSQL query collector item',
@frequency = 3000;
GO
B. Cambiar el nombre de un elemento de recopilación
En el ejemplo siguiente se cambia el nombre de un elemento de recopilación.
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. Cambiar los parámetros de un elemento de recopilación
En el ejemplo siguiente se cambian los parámetros asociados al elemento de recopilación. Se cambia la instrucción definida dentro del atributo <Value> y el atributo UseSystemDatabases está establecido en false. Para ver los parámetros actuales para este elemento, consulte la columna de parámetros en la vista del sistema syscollector_collection_items. Puede que necesite modificar el 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