Share via


sp_syscollector_update_collection_item (Transact-SQL)

Se aplica a:SQL Server

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 = ] N'name' ]
    [ , [ @new_name = ] N'new_name' ]
    [ , [ @frequency = ] frequency ]
    [ , [ @parameters = ] N'parameters' ]
[ ; ]

Argumentos

[ @collection_item_id = ] collection_item_id

Identificador único que identifica el elemento de colección. @collection_item_id es int, con un valor predeterminado de NULL. @collection_item_id debe tener un valor si @name es NULL.

[ @name = ] N'name'

Nombre del elemento de colección. @name es sysname, con un valor predeterminado de NULL. @name debe tener un valor si @collection_item_id es NULL.

[ @new_name = ] N'new_name'

Nuevo nombre para el elemento de colección. @new_name es sysname, con un valor predeterminado de NULLy, si se usa, no puede ser una cadena vacía.

@new_name deben ser únicos. Para obtener una lista de nombres de elementos de colección actuales, consulte la vista del syscollector_collection_items sistema.

[ @frequency = ] frequency

Frecuencia (en segundos) que recopilan los datos este elemento de colección. @frequency es int, con un valor predeterminado de 5, el valor mínimo que se puede especificar.

[ @parameters = ] N'parameters'

Parámetros de entrada para el elemento de recopilación. @parameters es xml, con un valor predeterminado de una cadena vacía. 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 (erróneo).

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
INNER JOIN syscollector_collection_items AS ci
    ON ci.collection_set_id = cs.collection_set_id
WHERE collection_item_id = < collection_item_id >;
GO

Permisos

Requiere la pertenencia al rol fijo de base de datos dc_admin o al rol fijo de base de datos dc_operator (con permiso EXECUTE) para ejecutar este procedimiento. Aunque dc_operator puede ejecutar este procedimiento almacenado, los miembros de este rol están limitados en las propiedades que pueden cambiar. Las siguientes propiedades solo se pueden cambiar mediante dc_admin:

  • @new_name
  • @parameters

Ejemplos

Los ejemplos siguientes se basan en el elemento de colección creado en el ejemplo definido en sp_syscollector_create_collection_item (Transact-SQL).

A Cambiar la frecuencia de 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 T-SQL query collector item',
    @frequency = 3000;
GO

B. Cambiar el nombre de un elemento de colecció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 T-SQL query collector item',
    @new_name = N'My modified T-SQL item';
GO

C. Cambiar los parámetros de un elemento de colecció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 de este elemento, consulte la columna de parámetros en la vista del syscollector_collection_items sistema. Es posible que tenga que 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