sp_syscollector_update_collection_item (Transact-SQL)

适用于:yesSQL Server (支持的所有)

用于修改用户定义的收集项的属性,或重命名用户定义的收集项。

Topic link iconTransact-SQL 语法约定

语法

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

参数

[ @collection_item_id = ] @collection_item_id
标识收集项的唯一标识符。 collection_item_id 默认值为 NULL 的 intcollection_item_id 名称为 NULL, 则该值 必须具有值。

[ @name = ] '@name'
收集项的名称。 namesysname ,默认值为 NULL。 如果 值为 NULL,则 name collection_item_id 值为 。

[ @new_name = ] '@new_name'
收集项的新名称。 new_name为 sysname,如果使用,则 不能为空字符串。

new_name 必须是唯一的。 有关当前收集项名称的列表,请查询 syscollector_collection_items 系统视图。

[ @frequency = ] @frequency
此收集项收集数据的频率(以秒为单位)。 frequency为 int,默认值为 5,即可指定的最小值。

[ @parameters = ] '@parameters'
收集项的输入参数。 参数为xml ,默认值为 NULL。 参数架构必须与收集器类型的参数架构匹配。

返回代码值

0 (失败) 1 (失败)

注解

如果将收集组设置为非缓存模式,则忽略更改频率,这是因为此模式将导致数据收集和上载按为收集组指定的计划执行。 若要查看收集组的状态,请运行下面的查询。 将 <collection_item_id> 替换为要更新的收集项的 ID。

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

权限

要求具有 dc_admin 或 dc_operator(拥有 EXECUTE 权限)固定数据库角色的成员身份才能执行此过程。 尽管 dc_operator 可以运行此存储过程,但是此角色的成员在其属性更改权限方面受到限制。 下列属性只能由 dc_admin 更改:

  • @new_name

  • @parameters

示例

以下示例基于 sp_syscollector_create_collection_item (在 Transact-SQL) 中定义的示例中创建的集合项

答: 更改收集频率

以下示例更改指定收集项的收集频率。

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

B. 重命名收集项

以下示例重命名收集项。

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. 更改收集项的参数

以下示例更改与收集项关联的参数。 已更改 <Value> 属性中定义的语句,并将 UseSystemDatabases 属性设置为 False。 若要查看此项的当前参数,请查询 syscollector_collection_items 系统视图中的参数列。 您可能需要修改 @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  

另请参阅

系统存储过程 (Transact-SQL)
“数据收集”
sp_syscollector_create_collection_item (Transact-SQL)
syscollector_collection_items (Transact-SQL)