sp_syscollector_update_collection_set (Transact-SQL)

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

主题链接图标Transact-SQL 语法约定

语法

sp_syscollector_update_collection_set 
    [ [ @collection_set_id = ] collection_set_id ]
        , [ [ @name = ] 'name' ]
        , [ [ @new_name = ] 'new_name' ]
        , [ [ @target = ] 'target' ]
        , [ [ @collection_mode = ] collection_mode ]
        , [ [ @days_until_expiration = ] days_until_expiration ]
        , [ [ @proxy_id = ] proxy_id ]
        , [ [ @proxy_name = ] 'proxy_name' ]
        ,[ [ @schedule_uid = ] 'schedule_uid' ]
        ,[ [ @schedule_name = ] 'schedule_uid' ]
        , [ [ @logging_level = ] logging_level ]
        , [ [ @description = ] 'description' ]

参数

  • [ @collection_set_id = ] collection_set_id
    是收集组的唯一本地标识符。collection_set_id 的数据类型为 int,且在 name 为 NULL 时必须具有值。

  • [ @name = ] 'name'
    是收集组的名称。name 的数据类型为 sysname,且在 collection_set_id 为 NULL 时必须具有值。

  • [ @new_name = ] 'new_name'
    是收集组的新名称。new_name 的数据类型为 sysname,并且如果使用该参数,则不能为空字符串。new_name 必须唯一。有关当前收集组名称的列表,请查询 syscollector_collection_sets 系统视图。

  • [ @target = ] 'target'
    保留供将来使用。

  • [ @collection_mode = ] collection_mode
    是要使用的数据收集的类型。collection_mode 的数据类型为 smallint,并且可具有下列值之一:

    0 - 缓存模式。数据收集和上载分别位于各自的计划中。为连续收集指定缓存模式。

    1 - 非缓存模式。数据的收集和上载位于同一个计划中。为临时收集或快照收集指定非缓存模式。

    如果从非缓存模式更改为缓存模式 (0),则还必须指定 schedule_uid 或 schedule_name。

  • [ @days_until_expiration= ] days_until_expiration
    表示收集的数据保存在管理数据仓库中的天数。days_until_expiration 的数据类型为 smallint。days_until_expiration 必须为 0 或正整数。

  • [ @proxy_id = ] proxy_id
    SQL Server 代理的代理帐户的唯一标识符。proxy_id 的数据类型为 int。

  • [ @proxy_name = ] 'proxy_name'
    代理的名称。proxy_name 的数据类型为 sysname,并且可为 Null。

  • [ @schedule_uid = ] 'schedule_uid'
    是指向计划的 GUID。schedule_uid 的数据类型为 uniqueidentifier。

    若要获取 schedule_uid,请查询 sysschedules 系统表。

    如果将 collection_mode 设置为 0,则必须指定 schedule_uid 或 schedule_name。如果将 collection_mode 设置为 1,则忽略 schedule_uid 或 schedule_name(如果指定)。

  • [ @schedule_name = ] 'schedule_name'
    计划的名称。schedule_name 的数据类型为 sysname,并且可以为 Null。如果指定了此参数,则 schedule_uid 必须为 NULL。若要获取 schedule_name,请查询 sysschedules 系统表。

  • [ @logging_level = ] logging_level
    表示日志记录级别。logging_level 的数据类型为 smallint,可以是以下值之一:

    0 - 记录执行信息和跟踪以下内容的 SSIS 事件:

    • 启动/停止收集组

    • 启动/停止包

    • 错误信息

    1 - 级别 0 日志记录和:

    • 执行统计信息

    • 连续运行收集的进度

    • 来自 SSIS 的警告事件

    2 - 级别 1 日志记录和来自 SSIS 的详细事件信息。

    logging_level 的默认值为 1。

  • [ @description = ] 'description'
    收集组的说明。description 的数据类型为 nvarchar(4000)。

返回代码值

0(成功)或 1(失败)

注释

sp_syscollector_update_collection_set 必须在 msdb 系统数据库的上下文中运行。

collection_set_id 或 name 必须具有值,不能两者均为 NULL。若要获取这些值,请查询 syscollector_collection_sets 系统视图。

如果收集组正在运行,您只能更新 schedule_uid 和 description。若要停止收集组,请使用 sp_syscollector_stop_collection_set

权限

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

  • @new_name

  • @target

  • @proxy_id

  • @description

  • @collection_mode

  • @days_until_expiration

示例

A. 重命名收集组

下面的示例重命名用户定义的收集组。

USE msdb;
GO
EXECUTE dbo.sp_syscollector_update_collection_set
@name = N'Simple collection set test 1',
@new_name = N'Collection set test 1 in cached mode';
GO

B. 将收集模式从非缓存模式更改为缓存模式

下面的示例将收集模式从非缓存模式更改为缓存模式。此更改需要您指定计划 ID 或计划名称。

USE msdb;
GO
EXECUTE dbo.sp_syscollector_update_collection_set
@name = N'Collection set test 1 in cached mode',
@collection_mode = 0,
@schedule_uid = 'C7022AF3-51B8-4011-B159-64C47C88FF70';
-- alternatively, use @schedule_name.
-- @schedule_name = N'CollectorSchedule_Every_15min;
GO

C. 更改其他收集组参数

下面的示例更新名为“Simple collection set test 2”的收集组的各种属性。

USE msdb;
GO
EXEC dbo.sp_syscollector_update_collection_set
@name = N'Simple collection set test 2',
@collection_mode = 1,
@days_until_expiration = 5,
@description = N'This is a test collection set that runs in noncached mode.',
@logging_level = 0;
GO