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.
Convenciones de sintaxis de Transact-SQL
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 identifer único que identifica el elemento de recopilación. collection_item_id es de tipo 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 colección. name es de tipo 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 del elemento de 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 recopilación actuales, consulte la vista del sistema syscollector_collection_items.
[ @frequency = ] frequency
Es la frecuencia (en segundos) con que este elemento de recopilación recopila los datos. frequency es de tipo int y su valor predeterminado es 5, el valor mínimo que se puede especificar.[ @parameters = ] 'parameters'
Parámetros de entrada para el elemento de recopilación. parameters es de tipo 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)
Comentarios
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> con 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
Se debe pertenecer al rol fijo de base de datos dc_admin o dc_operator (con permiso EXECUTE) para poder ejecutar este procedimiento. Aunque dc_operator puede ejecutar este procedimiento almacenado, los miembros de este rol tienen limitaciones en cuanto a las propiedades que pueden cambiar. 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 parameters de 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
Vea también
Referencia
Procedimientos almacenados del sistema (Transact-SQL)
sp_syscollector_create_collection_item (Transact-SQL)
syscollector_collection_items (Transact-SQL)